CN105051713A - System and method of web-based keyboard, video and mouse (kvm) redirection and application of the same - Google Patents

System and method of web-based keyboard, video and mouse (kvm) redirection and application of the same Download PDF

Info

Publication number
CN105051713A
CN105051713A CN201380074738.6A CN201380074738A CN105051713A CN 105051713 A CN105051713 A CN 105051713A CN 201380074738 A CN201380074738 A CN 201380074738A CN 105051713 A CN105051713 A CN 105051713A
Authority
CN
China
Prior art keywords
video
frame
pixel
image
browser program
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.)
Granted
Application number
CN201380074738.6A
Other languages
Chinese (zh)
Other versions
CN105051713B (en
Inventor
姗卓依·迈迪
巴斯卡尔·帕斯本
山维纳斯·克里斯夫
瓦达拉查理·苏丹·阿雅曼
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.)
American Megatrends International LLC
Original Assignee
American Megatrends Inc USA
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 American Megatrends Inc USA filed Critical American Megatrends Inc USA
Priority claimed from PCT/US2013/032466 external-priority patent/WO2014143034A1/en
Publication of CN105051713A publication Critical patent/CN105051713A/en
Application granted granted Critical
Publication of CN105051713B publication Critical patent/CN105051713B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

Certain aspects of the present disclosure are directed to a method of performing web-based keyboard, video and mouse (KVM) redirection implemented by a baseboard management controller (BMC). The method includes: (a) receiving, at a BMC, first and second video frames redirected from a host computer, the BMC performing a management function of the host computer, (b) generating a webpage at a web server of the BMC and sending the webpage to a browser program running on a computing device in a network, the webpage being programmed to instruct the browser program to initiate a drawable area and to establish a Web Socket connection with the web server, (c) generating a processed image representing the second video frame, (d) establishing a Web Socket connection between the web server and the browser program, and (e) sending the processed image to the browser program through the Web Socket connection.

Description

The system and method that network keyboard, video and mouse (KVM) are redirected and application thereof
the intersection of related application is drawnwith
This PCT application requires that the applying date is on March 15th, 2013, patent application serial numbers is No.13/839, 151, be entitled as " network keyboard, video and the redirected system and method for mouse (KVM) and application thereof ", and invention people is the Zhuo Yimaidi that walks slowly like a woman (SanjoyMaity), Pascal Er Pasiben (BaskarParthiban), the right of priority of the U.S. Patent application of mountain Venus Chris husband (SamvineshChristopher) and vara Da Chali the Sudan A Yaman (VaradachariSudanAyanam) and rights and interests, this application quotes in full at this, for reference.
Technical field
The present invention relates to field of computer, and particularly relate to the redirected system and method for network keyboard, video and mouse (KVM) between a kind of main frame and computing equipment.
Background technology
Background technology described here is used to the content summarizing the application.The work of the current inventor mentioned described in this background technology part, and can not regard as the prior art in the application's submission date instructions in, both there is no the prior art of yet impliedly not admitting clearly for the application.
Usually, term " computer system " refers to autonomous system or multiple interacted system, such as client-sever network.No matter how it implements, and the various parts forming computer system carry out operating usually within the scope of the series of parameters defined by performance protocol or standard.Such as, usually the temperature of computer cabinet is monitored, to detect its time cycle (periodsintime) when system may exceed a certain preset temperature reading.Other forms of information monitored in computer system includes but not limited to, the voltage relevant with the semiconductor devices on the substrate being positioned at system, be positioned on substrate or be positioned at system chassis radiator fan speed (such as, unit is rpm), and the speed of spindle motor in hard disk drive or in CD-ROM drive.
Use dissimilar sensor to detect the operation relevant to computer system and building block thereof and performance related parameter.See the above-mentioned example provided, these sensors comprise temperature controller, voltage table and velograph etc.The various sensors that computer system typically adopts one or more administration module to come assisted acquisition and analysis sense for the operation in measuring system and performance related parameter information.These administration modules can be software or hardware component, but typically not only comprise software but also comprise hardware component.Such administration module is called " baseboard management controller " (BMC).This BMC is the microprocessor of computer system, and has the contact pilotage (contactpin) of specified quantity, can be received analyzed for BMC by the information of various sensor sensing by this contact pilotage.In order to perform this analysis, BMC is programmed by firmware (fireware), to perform with the monitoring of system and to recover relevant program.By this firmware, BMC is programmed, the various operation of arriving with supervisory computer system internal induction and performance related parameter, and analyze this information to determine the current working range that whether there is arbitrary sensed parameter and surpass the expectation or advise, being commonly called as " accident " of these situations.
BMC can perform being redirected of keyboard, video and mouse (KVM).But, in the execution that this KVM is redirected, still there is unsolved demand.
Summary of the invention
Some aspect of the application relates to the redirected method of a kind of execution keyboard, video and mouse (KVM).Described method is implemented by by baseboard management controller (BMC).Described method comprises: (a) receives the first frame of video and the second frame of video that are redirected from main frame on described BMC; Wherein said BMC performs the management function of main frame; (b) generating web page on the webserver of described BMC, and described webpage is sent to the browser program operated in computing equipment by network; Wherein, described webpage is programmed to indicate described browser program to start (initiate) can drawing area, and sets up web socket with the described webserver and be connected; C () generates the processed image representing described second frame of video; D () is set up web socket and is connected between the described webserver and described browser program; And described processed image is sent to described browser program by described web socket connection by (e).In certain embodiments, described method comprises: described second frame of video and described first frame of video, on described BMC, compare by (a), to determine the first pixel of described second frame of video; Wherein, described first pixel has the pixel value different from the pixel value of the respective pixel of described first frame of video; B () generates the first paster image and relevant patch parameters, described first paster image representative comprises a part for described second frame of video of described first pixel.In certain embodiments, described method comprises: described first paster image and patch parameters be connected by described web socket and be sent to described browser program.In certain embodiments, programme to indicate described browser program that described first paster image on drawing area, can repaired the position indicated at described patch parameters to described webpage.
In certain embodiments, described method comprises: (a) generates the redirection map picture representing described first frame of video; And described redirection map picture is sent to described browser program by described web socket connection by (b); Wherein, described webpage is programmed can show described redirection map picture by drawing area described.Wherein, described can drawing area be the painting canvas defined by HTML5.Described webpage is programmed to indicate described browser program on described painting canvas, show described redirection map picture, and by described first paster image mending on the described redirection map picture shown.
In certain embodiments, described method also comprises: described second frame of video is divided into multiple paster by (a); B the pixel value of the respective pixel of the pixel value of each pixel of described second frame of video and described first frame of video compares by (); C () determines the pixel of multiple change in described second frame of video; Wherein, each pixel value in the pixel of described change is all different from the pixel value of the respective pixel of pixel in described first frame of video of each described change; D () determines the paster of multiple change; Wherein, each pixel comprising at least one and change in the paster of described change; E () generates the paster image of multiple change; Wherein, the paster image changed described in each represents one in described change paster respectively; And the paster image of described multiple change is sent to described browser program by described web socket connection by (f); Wherein, described webpage is programmed to indicate described browser program by the paster image mending of described change on described drawing area.
In certain embodiments, described method also comprises: (a) determines the position of the paster of each change in described second frame of video; And (b) is according to the position of the paster of each change representated by the paster image of each described change, generates the patch parameters of the paster image of each described change.Described webpage is programmed to indicate described browser program on described drawing area, repair the paster image of each described change in the position specified by described patch parameters.Described patch parameters comprise indicate described can the coordinate of drawing area position, the paster image of each described change width, and the height of the paster image of each described change.Described webpage be programmed to indicate described browser program to catch to occur in described can the first event on drawing area, and the event data of described first event is sent to the described webserver; Described first event is mouse event or KeyEvent.Described method comprises: (a) connects the event data received from described browser program by described web socket; B () generates described main frame compatible and represent the input data of described event data; And described input data are sent to the input control device of described main frame by (c).In certain embodiments, described first event is mouse event, and described event data indicates the described event location that event can drawing area occur.Described method comprises: (a) determines the position coordinates of described main frame according to described event location; And (b) generates the input data representing described mouse event and position coordinates.In certain embodiments, described first event is KeyEvent; Wherein, described event data indicates button.Described method comprises: generate the input data representing described button.
In certain embodiments, described method comprises: (a), according to the pixel value of multiple encirclement pixels of the given pixel of encirclement and the pixel value corresponding to the pixel in described first frame of video of described given pixel and encirclement pixel, described BMC generates the predicted value of the given pixel of described second image; And (b) basis damages or the pixel value of described given pixel is optionally replaced to described predicted value, to generate coded image by lossless requirement.In certain embodiments, described method also comprises compresses on the described webserver described encoded image, to generate processed image.Described webpage is programmed to indicate described browser program to call JavaScript path and carries out decompress(ion) and decoding to described processed image, can show decompress(ion) and decoded image in drawing area described.
Some aspect of the application relates to the redirected method of another kind of execution keyboard, video and mouse (KVM).Described method is implemented by by baseboard management controller (BMC).Described method comprises: (a) receives the first frame of video and the second frame of video that are redirected from main frame on described BMC; Wherein said BMC performs the management function of main frame; (b) generating web page on the webserver of described BMC, and described webpage is sent to the browser program operated in computing equipment by network; C () generates the processed image representing described second frame of video; D Java object is stored in the described webserver by (); Wherein, described webpage is programmed to indicate described browser program to download described Java object, and wherein said Java object defines Java display; E () is set up network and is connected between described BMC and the described Java object downloaded; Wherein said Java object performs on the Java Virtual Machine of described computing equipment; And described processed image is sent to executed described Java object by (f).
In certain embodiments, described method also comprises: (a), according to the pixel value of multiple encirclement pixels of the given pixel of encirclement and the pixel value corresponding to the pixel in described first frame of video of described given pixel and encirclement pixel, described BMC generates the predicted value of the given pixel of described second image; And (b) basis damages or the pixel value of described given pixel is optionally replaced to described predicted value, to generate coded image by lossless requirement.In certain embodiments, described method also comprises: (a) compresses described encoded image on the described webserver, to generate processed image; B () carries out decompress(ion) and decoding to described processed image in described executed Java object; And described decompress(ion) and decoded image are presented on described Java display by (c).
Some aspect of the application relates to a kind of non-transience computer-readable storage medium.Described non-transience computer-readable storage medium stores computer executable instructions.When described computer executable instructions is performed by the processor of baseboard management controller (BMC) computing machine, described instruction causes described main frame: (a) receives the first frame of video and the second frame of video that are redirected from described main frame; Wherein said BMC performs the management function of main frame; (b) generating web page on the webserver of described BMC, and described webpage is sent to the browser program operated in computing equipment by network; Wherein, described webpage is programmed to indicate described browser program to start can drawing area, and sets up web socket with the described webserver and be connected; C () generates the processed image representing described second frame of video; D () is set up web socket and is connected between the described webserver and described browser program; And described processed image is sent to described browser program by described web socket connection by (e).
According to the following specific description book provided, the application prospect of the application becomes and is perfectly clear.Should be understood that specific description book and specific example are only used to set forth the protection domain that the application is not meant to limit the application.
Accompanying drawing explanation
Can comprehend the application from the instructions described in detail and accompanying drawing, wherein:
Fig. 1 schematically depict the network KVM Redirectional system that one embodiment of the invention provides;
The web socket that Fig. 2 schematically depict one embodiment of the invention to be provided connects (websocket);
Fig. 3 A citing describes the HTTP request and HTTP response that use GET;
Fig. 3 B citing describes the web socket handshake request and response that one embodiment of the invention provides;
The network KVM that Fig. 4 schematically depict one embodiment of the invention to be provided is redirected;
The network video that Fig. 5 schematically depict one embodiment of the invention to be provided is redirected;
Fig. 6 schematically depict the frame of video and paster (tile) that one embodiment of the invention provides;
The flow process that the video that Fig. 7 A schematically depict one embodiment of the invention to be provided is redirected;
The flow process that the video that Fig. 7 B schematically depict another embodiment of the present invention to be provided is redirected;
The network video that Fig. 8 schematically depict another embodiment of the present invention to be provided is redirected; And
The flow process that the video that Fig. 9 schematically depict another embodiment of the present invention to be provided is redirected.
Embodiment
Following example described in more detail the application, and these examples are just used as illustrative, because the various amendment of these examples and distortion it will be apparent to those skilled in the art that.Various embodiments of the invention now will describe in detail.About accompanying drawing, numbering similar in whole accompanying drawing, if any, structure like representation class.Run through follow-up claims in instructions herein, unless clearly indicated in the context, the implication of " " and " described " comprises quotes plural number.Equally, in instructions herein, run through follow-up claims, unless clearly indicated in the context, " ... in " implication comprise " ... in " and " ... on ".And the title used in the description and subtitle are used to help reader, for the scope of the application without any impact.In addition, some terms will used in more specifically defined declaration book below.
In the certain content that the application's text and term use, the term used in this instructions is all generally their usual implications in the art.Below or other places of instructions will some term used be discussed in some the application, provide guide with the practitioner (preactitioner) to instructions of the present invention.Conveniently, some term will be emphasized, such as, use italic and/or quotation marks.Use and emphasize the scope and the implication that do not affect term; Whether no matter emphasized, in identical content, the scope of term is identical with implication.Should be understood that identical thing can have multiple different statement.Therefore, any one or more terms discussed herein can have alternative language and synonym, and whether term mentions or discuss not have any great impact at this.Provide the synonym of some term.The one or more synonyms enumerated are not got rid of can also use other synonyms.The example used Anywhere in this instructions, the example comprising any term discussed herein is only used to illustrate, is not meant to limit scope and the implication of the application or any term enumerated.Similarly, the application can not be restricted to the various embodiments provided in instructions.
Unless expressly stated, all technology used herein and scientific and technical terminology have the conventional implication that those skilled in the art described in the application understand.As contradictory, present specification, comprises definition, will control.
Usually, " left and right " used in this application, " approximately " or " being similar to " refer to relative to set-point or coverage bias within 20%, preferably within 10%, more preferably within 5%.The digital quantity herein provided is approximate, means if do not explicitly not pointed out, and so " left and right ", " approximately " or " being similar to " these terms can be inferred.
" multiple " that use in this be meant to two and more than.
The term used in this " comprises ", " comprising ", " having ", " containing " etc. represent open, is meant to include but not limited to.
At least one in phrase A, B and C of using in this is interpreted as the logic (A or B or C) using non-exclusive "or" logic.One or more steps that the method for should be understood that comprises can perform according to different order (or side by side) under the prerequisite of principle not changing the application.
The term module used in this can refer to a part or comprise special IC (ASIC), electronic circuit, combinational logic circuit, field programmable gate array (FPGA), run time version processor (shared, special or cluster), other suitable hardware combinations of described function are provided, or more part or all of combination, such as SOC (system on a chip).Term module can comprise the storer (shared, special goods cluster) of the code that storage of processor performs.
Above-mentioned term code can comprise software, firmware and/or microcode, can refer to program, thread, function, classification and/or object.Above-mentioned term is shared, and means that some or all codes from multiple module can use single (sharing) processor to perform.In addition, some or all codes from multiple module can be stored in single (sharing) internal memory (memory).Above-mentioned term cluster, mean that some or all codes from individual module can be performed by a group processor.In addition, some or all codes from individual module can be stored in a group internal memory.
One or more computer programs that the apparatus and method described in this perform by another or multiple processor are implemented.Computer program comprises the executable instruction of processor be stored in the tangible computer-readable medium of nonvolatile.Computer instruction also can comprise stored data.The non-limitative example of the computer-readable medium that nonvolatile is tangible comprises nonvolatile memory, magnetic store and optical memory.
Below with reference to accompanying drawing, the application is more comprehensively described, there is shown the embodiment of the application.Then, the application can various different form implement, and is not limited to the embodiment that provides in this; More precisely, these embodiments are for making the application be understood completely and thoroughly, and those skilled in the art can be made to understand the scope of the application completely.Similar label represents similar parts.
The application relates to computer system.As depicted in the figures, computer module can comprise the hardware component representing physics by solid box and the software part be indicated by the dashed box.It will be understood by those skilled in the art that unless expressly stated, these computer modules are embodied as, but are not limited to software form, form of firmware or example, in hardware, or their combination.
Fig. 1 schematically depict the network KVM Redirectional system that one embodiment of the invention provides.As shown in Figure 1, system 100 comprises main frame 110, with the computing equipment 140 be connected with main frame 110 by network 130.System 100 can be incorporated to more than one interacted system, such as client-sever network.Network 130 can be wired or wireless network, and can be various different form, as LAN (Local Area Network) (LAN) or the wide area network (WAN) comprising the Internet.
Main frame 110 can be general object computer system.Main frame 110 comprises substrate 111, or cries " mainboard ".Substrate 111 is printed circuit board, and by system bus or other electrical communication path, various assembly or equipment can be connected on substrate.Although clearly do not illustrate in FIG, the parts on substrate 111 are interconnective, and the wiring of parts on substrate 111 and the be interconnected mode of parts on substrate 111 are referred to here as the configuration of substrate 111.It will be understood by those skilled in the art that the structure of substrate 111 can carry out regulating and changing according to design requirement and manufacture requirements.
Parts on substrate 111 include but not limited to central processing unit (CPU) 112, internal memory 113, baseboard controller (BMC) 120, and other storage required and I/O (I/O) module (not shown).CPU112, internal memory 113 and BMC120 can be embedded in substrate 111, or are connected to substrate 111 by interface.In certain embodiments, interface can be physical hardware interface, such as electric connector, bus, port, cable, terminal or other I/O equipment.
CPU112 is primary processor, for the operation of main control system 110.Primary processor can other application of executive operating system (OS) or main frame 110.In certain embodiments, main frame 110 can have more than a CPU as primary processor, the such as CPU of two CPU, four CPU, eight CPU or any suitable quantities.
Internal memory 113 can comprise volatile memory, such as random access memory (RAM), for data and the information of storage host 110 run duration.
BMC120 refers to the special microcontroller of the interface between management system management software and platform hardware.Can build various dissimilar sensor in system 100, and BMC120 reads these sensors to obtain the parameters such as such as temperature, radiator fan speed, power rating, operating system (OS) state.BMC120 monitoring sensor, and if any parameter not in default restriction this BMC120 by network, alarm is sent to system manager, with the incipient fault of indication mechanism 100.Keeper also can long-rangely communicate to adopt right measures with BMC120, such as, reset or restart system to rerun to make the operating system of hang-up.Further, BMC120 can comprise KVM redirection module 122, for being redirected video and input signal between computing equipment 140 and main frame 110.Therefore, user can initiate KVM session from computing equipment 140, to check the video frequency output of main frame 110, and on main frame 110, inputs data by the input equipment of computing equipment 140.
In certain embodiments, IPMI (IPMI) industry standard for system monitoring and fault recovery observed by the firmware of BMC120.IPMI agreement is the standardized computer system interface agreement for computer system outband management and operation monitoring, this agreement is conversation-based, requires the IPMI session of setting up before application module energy and Target IP MI devices communicating between application module and Target IP MI equipment.IPMI specification is provided for the interface based on universal information of all ALARA Principle characteristics of accessing compatible computer, and comprises a large amount of predetermined instructions for reading temperature, pressure, fan speed, cabinet disturbance and other parameters.System failure daily record, hardware monitor and power control also to obtain by IPMI.Like this, IPMI defines and connects by operating system or by outside, as connected the various parameters of collecting by network or serial ports for obtaining BMC.BMC receives IPIM instruction or request by system interface from locally-attached supervisory computer, or receives external request by network interface from locally-attached supervisory computer.
In addition, in certain embodiments, BMC120 comprises KVM redirection module 122, network socket word modules 124 and web server module 126.KVM module 122 performs KVM redirection function.Network socket word modules 124 can pass through single transport connection protocol (TCP) connection establishment full-duplex communication passage under web socket agreement.Web server module 126 can provide by the addressable Web content in the Internet.The details of each module is by subsequent descriptions.
Further, main frame 110 comprises storer 114 and at least one I/O equipment 116.Storer 114 is the data storage medium for the operating system (not shown) of storage host 110 and other application.The example of storer 114 can comprise the data-carrier store of flash memory, RAM (random access memory) card, usb driver, hard disk drive, floppy disk, CD-ROM drive or other types.The example of I/O equipment 116 comprises keyboard, touch-screen, mouse, microphone, display screen, touch-screen or can be used for other I/O equipment of main frame 110.
Computing equipment 140 is connected to main frame 110 by network 130 is long-range.The long-range computing equipment 140 being connected to main frame 110 while of it should be appreciated by those skilled in the art that system 100 may comprise multiple.The example of computing equipment 140 comprises, such as portable set, such as smart mobile phone, palm PC or other movable computer equipment.
Computing equipment 140 comprises CPU171, internal memory 173 and storer 142.Storer 142 is data storage mediums of operating system for storing computing equipment 140 or other application.The example of the storer 142 of computing equipment 140 can comprise the data-carrier store of flash memory, RAM (random access memory) card, usb driver, hard disk drive, floppy disk, CD or other types.
Browser program 143 can be downloaded in internal memory 173 and also can be performed by the CPU171 of computing equipment 140.Browser program 143 is for obtaining, present and information resources being sent to the software application of user.Further, what browser program 143 can be used as system 110 is redirected client for the KVM communicated with BMC120.In general, browser program 143 can obtain and be provided in open network, such as, information resources on the Internet.Information resources can comprise the data content of webpage, picture, video or other types.
Further, internal memory 173 can loading operation system 114 and network socket word modules 145.Network socket word modules 145 is modules corresponding with the network socket word modules 124 of the BMC120 on main frame 110, thus can set up the full-duplex communication passage under web socket agreement between BMC120 and computing equipment 140.
Further, computing equipment 140 comprises at least one I/O equipment 146.The example of I/O equipment 146 comprises keyboard, touch-screen, mouse, microphone, display screen, touch-screen or is applicable to other I/O equipment of computing equipment 140.Some I/O equipment, such as touch-screen is for providing the two directions' inputing/output of computing equipment 140.
In order to show as webpage and the information resources of other data contents of use browser program 143, HTML (Hypertext Markup Language) (HTML) is the standardized markup language in language format Network Based, for display web page and other information that can show in browser program 143.The data of html format use the form of HTML key element or " mark " to write, and in web page contents, it is drawn together in angle bracket (such as <html>).At present, html format is extensively adopted by the browser program on nearly all market, and therefore it is suitable as the network language format of the communication instruction between the webserver 126 of the BMC120 of browser program 143 in computing equipment 140 side and main frame 110 side.
In general, except html format language, the script as JavaScript is used to the input and output controlling user interface.Further, the version HTML5 of html language recent development is that the network storage provides a large amount of character, and it has used network application software method and agreement for being stored data by web browser.Browser program conventional in the past does not support HTML5 form, but support that the browser program of HTML5 form comprises MOZILLAFIREFOX1.5, GOOGLECHROME4.0, SAFARI3.1, SAFARIMOBILE3.2, OPERA9.0, OPERAMOBILE10.0, ANDROIDBROWSER2.1 and INTERNETEXPLORER9.0, or the version of any renewal of these browser programs.Therefore, browser program 143 can be supported HTML5 and can be the one in browser program listed above.
Browser program 143 can use HTML (Hypertext Markup Language) (HTTP) to communicate with the webserver 126 on BMC.Particularly, browser program 143 can send HTTP request to the webserver 126.Once after receiving HTTP request, server can send HTTP and reply browser program to respond HTTP request.
Usually, under http, the webserver 126 can not initiate data transmission to browser program 143.Web socket can provide the full-duplex communication passage in single TCP connection, thus server initiatively can send instruction or information to client.Web socket is incorporated in HTML5, and therefore it can be implemented web browser and the server support of HTML5.
Fig. 2 shows the process setting up the web socket connection between main frame 110 and computing equipment 140 that one embodiment of the invention provides.Web socket connects and starts to be connected similar mode with HTTP, but there is provided two-way network of continuous print between main frame 110 with browser program 124 and be connected.When browser program 143 attempt to set up web socket connect time, browser program 143 indication network socket module 145 sends the port 443 (HTTPS port) of web socket handshake request to the network socket word modules 124 of port 80 (http port of acquiescence) or BMC120.Web socket handshake request is similar to the GET used in HTTP request, but it comprises more Multi net voting socket instruction and can regard that " upgrading " asks as.Once after receiving web socket handshake request, it is web socket handshake request instead of HTTP request that the webserver 126 goes out this request according to the information identifiable design of the upgrading in web socket handshake request.The webserver 126 sends and shakes hands response message to browser program 143.Correspondingly, the web socket can set up between browser program 143 with the webserver 126 is connected 150.
Fig. 3 A and 3B provides the contrast between web socket handshake request and HTTP request, and wherein Fig. 3 A shows an example of the HTTP request using GET, and Fig. 3 B then shows an example of web socket handshake request.As shown in Figure 3A, the information of content in the head instruction response message of the response message of response HTTP request, the type comprising content is text/web page files, the language that uses in the length of content file and content.Last column of the head of the response message of response HTTP request is used to indicate the connection between the end Shutdown Hosts 110 and browser program 124 of response.Compare, front two row of the web socket handshake request shown in Fig. 3 B comprise the GET identical with HTTP request.The row subsequently of web socket handshake request comprises the information of upgrading, carries out upgrading or switching to web socket agreement from conventional H TTP request for informing network socket module 124.Further, different from the response message of response HTTP request, the head in response to the response message of shaking hands of web socket handshake request does not indicate closes connection at the end of response.
Once establish web socket to connect 150, network socket word modules 124 all sends data to the other end by being connected with network socket word modules 145.Data layout can be any effective UTF-8 string format, such as JSON or XML, but if wants also can use with other data layouts.
Network socket word modules 124 and 145 can be all kinds and design, such as PHP web socket, Java web socket, Web-Socket-ruby, socket input and output mode (SocketIO-mode), or the web socket application of other types.In order to network socket word modules 124 being set to the network socket character server of main frame 110 side, main frame 110 and the domain name of port (such as port 80 or 443) used or IP address must be provided to indicate the position of main frame 110, and multiple instruction must be set up to respond some " accident ", such as, open socket (namely web socket connects), receive handshake request or other information in socket or close socket.When establishing network socket character server, web socket client can use uniform resource location (URL) to be connected to network socket character server, the beginning of uniform resource location system is " ws ", substitutes the beginning " http " of conventional H TTP system; Or the beginning of uniform resource location system is " wss ", substitutes the beginning " https " of conventional H TTP system.
The network KVM that Fig. 4 shows one embodiment of the invention to be provided is redirected.As shown in Figure 4, between BMC and computing equipment 140, set up web socket connect 150.Main frame 110 can comprise Video Controller 117 for output video signal and redirected controller 118, as the I/O port that video is redirected.In the present embodiment, the KVM redirection module 122 of BMC120 is connected with redirected controller 118 and I/O controller 116 respectively.KVM redirection module can receive the redirected frame of video from redirected controller, and sends keyboard and mouse-input signals to I/O controller 116.
Computing equipment 140 comprises display device 147 and input equipment, such as keyboard 148, mouse 149 and touch-screen.Although and not shown, but this main frame 110 and computing equipment 140 can comprise other elements to perform network KVM be redirected.
Fig. 5 diagrammatically show and is redirected according to the network KVM in certain embodiments of the invention.As shown in the figure, main frame 110 has the Video Controller 117 for output video signal.Such as, vision signal can output in display device for display.Video Controller 117 and redirected controller 118 communicate to connect, for catching vision signal and producing frame of video.Redirected controller sends the KVM redirection module 122 of frame of video to BMC120 subsequently.
Such as, KVM redirection module 122 receives the frame of video 152 and 154 of from host, processes, and produce redirection map picture to this frame of video, sends redirection map picture subsequently to the webserver.Once the request receiving the browser run in comfortable computing equipment 140, transmission KVM is redirected webpage to browser by this webserver.Under the instruction of webpage, this browser will regain (retrieve) redirection map picture from the webserver.
In certain embodiments, the webserver painting canvas (canvas) be configured to for utilizing HTML5 to support generates KVM and is redirected webpage.Redirected webpage comprises canvas label, and what this label defined the browser display page can drawing area.One of this canvas label is one of them element of being provided by HTML5, for generation of image and video file, and allow shape and bitmap images dynamic and scriptablely to play up.Canvas label defines can the height of drawing area and width attribute.JavaScript code enters by a whole set of drawing function can drawing area, and drawing area can dynamically show the image generated what defined by canvas label.The ability that Canvas label self is not drawn, and the container of image can be regarded as.Normally, Canvas label has ID, and this ID can referenced by JavaScript code.Fig. 5 shows the KVM redirection page mask played up by browser program 143 painting canvas.
Based on the configuration information of user's input, or selectively default configuration, the webserver can be redirected in webpage at KVM the size arranging painting canvas.Such as, user can expect that it has the resolution identical with the resolution of the frame of video that Video Controller exports.In other words, each pixel of the frame of video exported by Video Controller has each self-corresponding pixel on painting canvas.Such as, if the video pixel of frame of video is 1024*768, then it is 1024 that the painting canvas defined by canvas label can be correspondingly arranged to wide, and height is 768.For another example, user can expect the half with video frame resolution.Therefore, if the video resolution of frame of video is 1024*768, then the painting canvas defined by canvas label is then set to width 512, and height 384.Normally, in following description, between video frame resolution and painting canvas resolution, use man-to-man corresponding relation as an example.It will be appreciated by those skilled in the art that resolution that technology discussed below is similarly applied to resolution and frame of video has the painting canvas of other corresponding relations.
KVM redirection module 122 receives the first and second frame of video 152 and 154 of the redirected controller 118 of from host 110.When the first frame 152 is the start frame received by KVM redirection module, namely KVM redirection module 122 did not previously receive frame of video, then the generation of KVM redirection module has the first redirection map of all Pixel Information in the first frame 152 as 157, and this first redirection map is sent to the webserver 126 as 157.Redirection map picture is the form that browser program 143 can be played up.First redirection map is sent to browser program as 157 by technology described below by the webserver 126 subsequently.
When receiving the second frame of video 154, the copy of the first frame 152 retained in the second frame 154 and KVM redirection module 122 compares by KVM redirection module 122, and whether detection exists different values in any respective pixel of the first frame and the second frame.When difference being detected, KVM redirection module 122 generates the patch (patch) including the Pixel Information of the related pixel of second frame 154 different from the respective pixel of the first frame 152, and this patch is sent to the webserver.Describe in detail as following, patch is sent in the browser program 143 of computing equipment 140 by the webserver 126, and browser program 143 correspondingly can be repaired the painting canvas in corresponding region 170 and 172.
Fig. 6 shows the first frame of video 152 and the second frame of video 154.In this example, each frame of video is divided into 30 pasters (tile) by KVM redirection module 122, and wherein these 30 pasters constitute the matrix form that 5 row 6 arrange.The quantity of this paster is configurable.Such as, the paster configuration of acquiescence can be the matrix of 16*16.KVM redirection module 122 carries out the comparison of pixel value pixel by pixel to the first frame of video and the second frame of video.In other words, KVM redirection module 122 determines that whether the value of any pixel of the second frame of video is different from the value of the respective pixel of the first frame of video.If any pixel in the second frame of video 154 paster changes compared with the respective pixel of the first picture frame 152, then KVM redirection module 122 determines that this paster changes.Such as, as shown in Figure 6, compared with the first frame 152, the paster 615 ', 625 ', 622 ', 623 ', 632 ', 633 ', 642 ' and 643 ' of the second frame changes.Therefore the pixel value of the paster 622 ', 623 ', 632 ', 633 ', 642 ', 643 ', 615 ' and 625 ' as paster image and patch parameters are only sent to the webserver 126 by KVM redirection module 122.Patch location is shown by the coordinate of frame of video; Wherein, this patch location is included in patch parameters.The position of paster is typically defined as the position (such as coordinate) in the paster upper left corner.
The webserver 126 receives the part of paster coordinate as patch parameters, and determines whether to need the frame of video coordinate conversion by paster image to become browser coordinate, carries out correct repairing for browser program to the current redirection map picture played up.Such as, the patch parameters (x, y, W, H) received by the webserver can show that the position of paster is on the coordinate (x, y) of frame of video, and this patch width is W, is highly H.Width and height parameter are selectable.
When the resolution of painting canvas is configured to have man-to-man corresponding relation with the resolution of frame of video, namely when each pixel of frame of video has respective pixel respectively on painting canvas, then the webserver 126 can determine this patch parameters (x, y, W, H) also directly can be used by painting canvas, and without the need to carrying out transformation, paster be repaired on painting canvas.The paster image received from KVM redirection module 122 can be converted to the different form that browser program 143 can be played up by the webserver.Paster image can be different images or picture file format, such as normally used JPEG, PNG or BMP form, or browser program 143 other image file formats displayable.As described below, the paster image with patch parameters is sent in browser program 143 by the webserver 126 subsequently.Browser program 143 correspondingly uses paster image to repair painting canvas in the region that patch parameters indicates.Such as, the redirected webpage generated by the webserver can have and is used to indicate browser by the JavaScript code of paster image mending on painting canvas, such as context.drawlmage (paster, x, y, W, H).When the resolution that the resolution of painting canvas is configured to relative video frame has other ratios (such as 1: 2), then frame of video coordinate conversion can be become browser coordinate (such as, x/2, y/2 according to this ratio by the webserver 126, W/2, H/2).Fig. 5 shows browser program 143 and on painting canvas 160, initially shows the first redirection map as 157.After the patch comprising one or more paster 170 and 172 is sent to browser program 143 by BMC120, browser program 143 is repaired as 157 the first redirection map, to generate the second redirection map as 159.
Paster image can be sent to browser program 143 by the webserver 126 in several ways.Such as, the webserver 126 can store paster image and patch parameters thereof in the precalculated position of this webserver.The redirected webpage generated by the webserver 126 can indicate browser program 143 periodically to check precalculated position, to determine whether that new patch can be used.Selectively, redirected webpage can indicate browser program 143 and the webserver to set up web socket to be connected, and the paster image with patch parameters can be connected by web socket and be sent to browser program 143 by the webserver subsequently.
In certain embodiments, paster image can be various form, such as PNG, BMP, JPEG etc.The webserver 126 can pass through identifier (identifier), and such as numerical value or letter identify each paster of frame of video.Paster image and identifier thereof can be connected 150 by web socket and be sent to browser program 143 by the webserver 126.Such as, the webserver 126 can send paster image #5 to browser program 143.Painting canvas 160 on browser program 143 can be divided into the paster corresponding with the paster of frame of video.In other words, each paster identifier also can identify the single paster on painting canvas 160.The redirected webpage played up by browser program 143 has JavaScript path accordingly, and this JavaScript path can by the paster Image Rendering that receives by the paster region on the painting canvas 160 of identifier identification.After receiving paster image #5, redirected webpage indicates browser program to be designated on painting canvas in the region of #5 accordingly and draws paster image (such as, PNG, JPEG or BMP form).
Fig. 7 A shows and to connect according to the employing web socket in certain embodiments of the invention and flow process that the video of HTML5 painting canvas is redirected.In operation 710, browser program 143 is sent by network 130 and is redirected the request of webpage to BMC120 to KVM.This request can be HTTP form.Once receive request KVM being redirected to webpage, in operation 720, the webserver 126 of BMC120 sends KVM and is redirected webpage to browser program 143.Therefore, browser program 143 can show KVM to user and be redirected webpage, the user of computing equipment 140 is inputted in operation 722 or selects the configuration information of KVM redirection module 122 of BMC120.The configuration information of KVM redirection module can comprise redirection map as resolution information, redirection map as refresh rate information, machine and network settings, verification setting, and for KVM be redirected other information.Subsequently, in operation 724, browser program 143 such as adopts http protocol to send the webserver 126 of configuration information to BMC120.Once after reception configuration information, the webserver 126 sends configuration information accordingly to KVM redirection module.In operation 730, KVM redirection module 122 that BMC120 is arranged accordingly (setup).KVM redirection module can connect with the redirected controller 118 of main frame 110.
In operation 760, browser program 143 sends web socket handshake request to the webserver 126, connects to set up full-duplex communication under web socket agreement.Once after receiving web socket handshake request, in operation 762, the webserver 126 indication network socket module 124 opens web socket.Similarly, in operation 764, browser program 143 indication network socket module 145 opens web socket.Therefore, in operation 766, between network socket word modules 124 and network socket word modules 145, establish web socket connect.
Connect once establish web socket, then the video that BMC120 can start main frame 110 exports is redirected to browser program 143 by web socket connection.Especially, in operation 770, the first frame of video of KVM redirection module Receiving Host 110.This first redirection map picture, with this first frame of video of aftertreatment, to generate the first redirection map picture, and is sent in the webserver 126 by KVM redirection module.In operation 772, the first redirection map picture is sent to network socket word modules 124 by the webserver 126.In operation 774, the first redirection map picture is sent in the network socket word modules 145 of computing equipment by web socket connection by network socket word modules 124.In operation 776, the first redirection map picture is sent to browser program 143 by network socket word modules 145.In operation 778, browser program 143 can show the first redirection map picture subsequently indicated by redirected webpage on painting canvas 160.
Subsequently, in operation 780, KVM redirection module 122 receives the second frame of video of from host 110.Second frame of video and the first frame of video compare by this KVM redirection module 122 subsequently, to determine whether each pixel of the second frame of video has the pixel value different from the first frame of video respective pixel.If any pixel changes in the second frame of video, then KVM redirection module 122 generates one or more paster image and relevant patch parameters accordingly.This paster image and patch parameters are sent to the webserver 126 by KVM redirection module 122.If needed, paster image is converted to the form that browser program 143 is supported by the webserver subsequently.In operation 782, the webserver 126 of BMC120 sends paster image and parameter to network socket word modules 124.In operation 784, paster image and parameter are sent to network socket word modules 145 by web socket connection by network socket word modules 124.In operation 786, network socket word modules 145 sends paster image and parameter to browser program 143.In operation 788, this browser program 143 can be redirected webpage instruction as KVM, adopts the paster image received to repair on the first redirection map picture on painting canvas in the region indicated by patch parameters.
Fig. 7 B shows and carries out the redirected flow process of video according to the employing web socket connection 150 in certain embodiments of the invention and specific image treatment technology.In this example, KVM redirection module 122 initially pushes the first redirection map picture representing the first frame to (forwads) to browser program 143.Browser program 143 correspondingly can show the first redirection map picture in the viewing area 161 of browser program 143.Subsequently, KVM redirection module 122 can use different codings and compress technique to process to represent the second redirection map picture of the second frame 154.The second redirection map picture of processed (namely encoded and compressed) connects 150 by web socket subsequently and transfers to browser program 143.The redirected webpage received by browser program 143 comprises and may be used for indicating browser program 143 the second processed redirection map picture to be carried out to the JavaScript path of decompress(ion) and decoding.The second processed redirection map picture carried out to decompress(ion) and decoding with after obtaining and showing image at browser program 143, this browser program 143 can show this image in the viewing area of browser program 143.
One of them treatment technology (i.e. coding/decoding and compression/decompression) is 7,567,717 and 7,970 in the patent No., and open in the U.S. patents of 218, these United States Patent (USP)s are incorporated into for reference clearly herein.In simple terms, as disclosed in these patents, according to the value of surrounding respective pixel in the value of some pixels of given pixel and the first redirection map picture in the second redirection map picture, KVM redirection module 122 can generate the predicted value of the given pixel for the second redirection map picture.Further, according to damaging or lossless requirement, the actual value of given pixel in the second redirection map picture is optionally replaced to predicted value by KVM redirection module 122, and correspondingly encodes to the second redirection map picture subsequently.Subsequently, KVM redirection module 122 uses pre-defined algorithm, and Run-Length Coding (" the RLE ") algorithm such as simplified compresses the second encoded redirection map picture, and obtains the second processed redirection map picture thus.In addition or selectively, KVM redirection module 122 can use usual Image Compression to process the second redirection map picture.Wherein, this usual Image Compression comprises Lossless Image Compression method and Image Lossy Compression method.Wherein, Lossless Image Compression method such as DPCM, entropy code, deflation (deflation) or chain code compression; And the such as color space minimizing of Image Lossy Compression method, double sampling or transform coding.
Especially, in figure 7b shown in operation 710 to 776 class of operation corresponding with Fig. 7 A seemingly.In operation 779, browser program 143 shows the first redirection map picture at the browser display area 161 of browser program 143.In operation 781, the second frame of video of KVM redirection module 122 Receiving Host 110, and generate the second redirection map picture.KVM redirection module 122 adopts the technology of above-mentioned discussion to process the second redirection map picture subsequently, to generate the image of processed (namely encoded and compress).In operation 783, processed image is sent to network socket word modules 124 by the webserver 126 of BMC120.In operation 784, processed image is connected 150 by web socket and is sent to network socket word modules 145 by network socket word modules 124.In operation 787, processed image is sent to browser program 143 by network socket word modules 145.In operation 78, browser program 143 is passable, such as in redirected webpage the instruction in JavaScript path that defines, decompress(ion) and decoding being carried out to processed image, to obtain the image for showing, and showing this image in viewing area 161 subsequently.
The network KVM that Fig. 8 diagrammatically show according to another embodiment of the present invention is redirected.In the present embodiment, computing equipment 140 comprises Java Virtual Machine (JVM) 166.Selectively, JVM can be downloaded from the webserver 126 of BMC120 by browser program 143.
Initially, browser program 143 is connected with the webserver 126 of BMC120, to receive redirected webpage.User can input validation information, and this authorization information is sent to the webserver by being redirected webpage.The webserver 126 couples of users verify, and send session token subsequently to browser program 143.The webserver 126 stores precompiler Java object 164, and this Java object can performed by the JVM on computing equipment 140.Under the permission of the user of operating browser program, browser program 143 downloads this Java object 164.Java object 164 performs subsequently in the JVM of computing equipment 140.Java object starts the Java display module 163 that may be used for showing redirection map picture and patch.Image on Java display module 163 pairs of display devices 147 is played up.The session token received from the webserver 126 is passed to Java object 164 by browser program 143.Java object 164 can connect 151 with Redirect Server 122.Typically, at the TCP/IP socket 195 of computing equipment 140 with connect 151 between the TCP/IP socket 125 of BMC120.By JVM166, this Java object 164 can indicate operating system 144 to open TCP/IP socket 195 for Java object 164.Java object 164 uses session token to set up communication port, for the session with KVM redirection module 122.
After setting up communication port, KVM redirection module 122 can send redirection map picture and patch to Java object by communication port.Java object 164 calls Java display module 163 to show redirection map picture and patch.The configuration of resolution needed for user's counterweight directional images, Java display module 163 is arranged to required resolution by Java object 164.Java object 164 can defined function, such as drawImage (), can show complete redirection map picture when calling this function on Java display module 163, and adopts paster image to repair Java display module 163 in appointed area.Be similar to painting canvas 160, this Java object 164 can adopt coordinate parameters to draw paster image on Java display module 163.
Selectively, can process by counterweight directional images as mentioned above for Fig. 7 B, KVM redirection module 122.Subsequently, KVM redirection module 122 sends processed image to Java object 164 by communication port.Java object 164 can carry out decompress(ion) and decoding to processed image, to obtain the image for showing.Subsequently, Java object 164 can show image on Java display module 163.
Fig. 9 shows and carries out the redirected flow process of video according to the use Java object of certain embodiments of the invention.In operation 910, browser program 143 sends KVM by network and is redirected web-page requests to BMC120.This request can be HTTP form.Once receive after KVM is redirected the request of webpage, in operation 920, the webserver 126 of BMC120 sends KVM and is redirected webpage to browser program 143.Therefore, in operation 922, browser program 143 can show KVM to user and be redirected webpage, and allows the user of computing equipment 140 can input or select the configuration information of KVM redirection module 122.The configuration item information of KVM redirection module can comprise redirection map as resolution information, redirection map as refresh rate information, machine and network settings, verification setting, and for KVM be redirected other information.Subsequently, in operation 924, browser program 143 such as adopts http protocol to send the webserver 126 of configuration information to BMC120.The webserver 126 sends configuration information accordingly to KVM redirection module 122.Browser program 143 also asks the Java object from the webserver 126.Once receive configuration information, in operation 926, if needed, the webserver 126 pairs of Java object 164 are configured, and subsequently Java object 164 and session token are sent to browser program 143.Once receive Java object 164, in operation 928, browser program 143 starts Java object 164 on JVM166, and by session alternative space to Java object 164.
Meanwhile, in operation 930, BMC arranges KVM redirection module 122 accordingly.KVM redirection module 122 can connect with the redirected controller 118 of main frame 110.
In operation 960, Java object 164 is by adopting the communication connection between session token startup with KVM redirection module 122.In operation 966, set up TCP/IP between the TCP/IP socket module 195 at computing equipment 140 and the TCP/IP socket module 125 at BMC120 and connect.
Once after TCP/IP connection establishment, BMC120 can start to be redirected to Java object 164 to the video exported from main frame 110 by TCP/IP connection.Especially, in operation 970, KVM redirection module receives the first frame of video from main frame 110, or frame 1.KVM redirection module can process the first frame of video (that is, coding and compression), to generate the first processed redirection map picture.In operation 972, the first processed redirection map picture is sent to TCP/IP socket module 125 by KVM redirection module 122.In operation 974, the first processed redirection map picture is connected the TCP/IP socket module 195 being sent to computing equipment 140 by TCP/IP socket module 125 by TCP/IP.In operation 976, the first compressed image is sent to Java object 164 by TCP/IP socket module 195.In operation 978, Java object 164 pairs of compressed images carry out decompress(ion).In operation 979, decompressed image shows by Java object in Java display module 163.
Subsequently, in operation 980, KVM redirection module 122 receives the second frame of video of from host 110.This KVM redirection module 122 processes (that is, coding and compression) the second frame of video subsequently, and generates the second processed redirection map picture thus.In operation 982, the second processed redirection map picture is sent to TCP/IOP socket module 125 by KVM redirection module.In operation 984, the second processed redirection map picture is connected the TCP/IP socket module 195 being sent to computing equipment 140 by socket module 125 by TCP/IP.In operation 986, the second compressed image is sent to Java object 164 by TCP/IP socket module 195.In operation 988, Java object 164 carries out decompress(ion) and decoding to the second processed redirection map picture, and generates the second image for showing.In operation 989, the second image shows by Java object in Java display module 163.
Referring back to Fig. 4, in certain embodiments, input is redirected, and comprises keyboard and mouse and is redirected to be redirected with video and carries out simultaneously.Browser program 143 can receive from input equipment, such as the input signal of keyboard 148, mouse 149 and touch-screen.Input data can be connected by web socket the web socket 124 that 150 are sent to BMC120 by browser program 143.When the web socket 124 of BMC120 receives input data, input data are passed to the webserver 126 by web socket 124, and this webserver 126 can process to regain keyboard and mouse input to input data.Keyboard and mouse input are sent to KVM redirection module 122 by the webserver 126.If needed, keyboard and mouse input can be converted to the form that main frame 110 uses by KVM redirection module 122, and this input is sent to I/O controller 116.In this way, the input deriving from browser program 143 can be used as the input deriving from local input equipment by main frame 110.
Utilize operating system 144, browser program 143 can generate incoming event (inputevent), and the representative of this incoming event is from the sensing keyboard 148 of browser program 143 and the input of mouse 149.Such as, on keyboard 148, when a key is pressed, keyboard action will occur.Some keyboard action may relate to the combination of the multiple keys be simultaneously pressed.Such keyboard action is usually relevant with the special function keys of keyboard 148, such as Ctrl, Atl key or shift key, and these function keys are expected to work with other key combinations.In such action, generation and each independent key are inputted the input of difference key by this combination.Each keyboard action will produce the input data of response, and these input data may comprise character code, or correspond to other of KeyEvent and represent numerical value.
Mouse can perform multiple different action, such as by cursor of mouse place on the specific area, rolling mouse cursor, roll mouse roller, and click (click or double-click) mouse button.In certain embodiments, above-mentioned action can be combined, such as, can click mouse button when cursor of mouse being placed on specific region, or " dragging " mouse, the button at not release-push rolling mouse cursor simultaneously of namely clicking the mouse.Normally, mouse event can be divided into a few class, such as click event, drag events and moving event.
JavaScript provides function corresponding to these mouses and keyboard action and event object.Such as, click action may comprise to be pressed mouse event and mouse and to upspring event, and this refers to the action that mouse button is pressed respectively, and the d/d action of the mouse button be pressed.Shift action may comprise mouse moving event, and this mouse moving event refers to and cursor of mouse is moved to another location from a position.Drag action refers to mouse down event, mouse moving event and mouse and to upspring the combination of event.Other JavaScript function relevant with mouse event and the example of test ride can comprise mouse-over (mouseover) event, this event relates to the presumptive area moved to by cursor of mouse on screen; And mouse moves into (mouseenter) event, this event relates to the presumptive area moved to by cursor of mouse on screen.JavaScript also provides getMousePos () function, to combinationally use with mouse moving event.Each mouse event can comprise multiple parameter.Such as, when mouse down event occurs, this event represents the coding of mouse down event by generating, and generates the coordinate parameters that the mouse cursor position at this mouse down event place occurs in representative.
In certain embodiments, when event occurring on painting canvas 160 or Java display module 163, KVM is redirected the position that webpage catches mouse event.Such as, the redirection map picture be presented on the painting canvas 160 of browser program 143 can illustrate the user interface that main frame 110 exports.User can use the mouse of computing equipment 140 to click the mouse of the user interface be presented on painting canvas.Redirected webpage can have JavaScript path, and this JavaScript detects the position of mouse event and detects the coordinate of generation of the mouse event relevant with painting canvas 160 or Java display module 163.Have the position of the resolution of one-one relationship at painting canvas 160 or Java display module 163 with the frame of video exported by the Video Controller 117 of main frame 110, these browser coordinates also indicate the desired locations of the redirected mouse event on main frame 110.In other cases, the browser coordinate conversion obtained from browser program 143 can be become the frame of video coordinate on main frame 110 by the webserver 126, correctly to show the expectation coordinate position of the redirected mouse event on main frame 110.
Such as, referring back to Fig. 5, when the painting canvas 160 of browser program 140 show redirection map as 159 time, the user of computing equipment 140 can use mouse to click position 180 on painting canvas.Therefore, browser program 143 can use JavaScript to obtain (comprising mouse down event and getMousePos () function) coordinate parameters of mouse click location 180, and mouse click event data are sent to BMC120.Subsequently, if needed, this event data according to the form converting main frame 110 use to, and is sent to the input control device 116 of main frame 110 by BMC120 this mouse clicks strong.
The foregoing description of the above exemplary embodiment of the application is only used to illustrate and describe, and attempt limit is all is maybe restricted to disclosed concrete form by application.In the above teachings, a lot of amendment and distortion can also be had.
The embodiment selected and describe be used to explain the principle of the application and practical application thereof with make those skilled in the art implement the application and various embodiment and by various amendment to be applicable to the purposes of various expection.When not departing from the application's spirit and scope, alternate embodiment is apparent for the application person of ordinary skill in the field.Such as, various detection instrument can be used to implement the present invention simultaneously.Therefore, the scope of the application is determined by its claim, instead of above instructions and the exemplary embodiment that wherein describes.

Claims (25)

1. perform the redirected method of network keyboard, video and the mouse (KVM) implemented by baseboard management controller (BMC), it is characterized in that, comprising:
Described BMC receives the first frame of video and the second frame of video that are redirected from main frame; Wherein said BMC performs the management function of described main frame;
Generating web page on the webserver of described BMC, and described webpage is sent to the browser program operated in computing equipment by network; Wherein, described webpage is programmed to indicate described browser program to start can drawing area, and sets up web socket with the described webserver and be connected;
Generate the processed image representing described second frame of video;
Between the described webserver and described browser program, set up web socket connect; And
Described processed image is connected by described web socket and is sent to described browser program.
2. method according to claim 1, is characterized in that, generates processed image and comprises:
On described BMC, described second frame of video and described first frame of video are compared, to determine the first pixel of described second frame of video; Wherein, described first pixel has the pixel value different from the pixel value of the respective pixel of described first frame of video;
Generate the first paster image and relevant patch parameters, described first paster image representative comprises a part for described second frame of video of described first pixel;
Wherein, send described processed image to comprise: described first paster image and patch parameters are connected by described web socket and are sent to described browser program; Wherein, programme to indicate described browser program that described first paster image on drawing area, can repaired the position indicated at described patch parameters to described webpage.
3. method according to claim 2, is characterized in that, comprising:
Generate the redirection map picture representing described first frame of video; And
Described redirection map picture is connected by described web socket and is sent to described browser program; Wherein, described webpage is programmed can show described redirection map picture by drawing area described.
4. method according to claim 3, is characterized in that, described can drawing area be the painting canvas defined by HTML5; Wherein, described webpage is programmed to indicate described browser program on described painting canvas, show described redirection map picture, and by described first paster image mending on the described redirection map picture shown.
5. method according to claim 3, is characterized in that, comprising:
Described second frame of video is divided into multiple paster;
The pixel value of the respective pixel of the pixel value of each pixel of described second frame of video and described first frame of video is compared;
Determine the pixel of multiple change in described second frame of video; Wherein, each pixel value in the pixel of described change is all different from the pixel value of the respective pixel of pixel in described first frame of video of each described change;
Determine the paster of multiple change; Wherein, each pixel comprising at least one and change in the paster of described change;
Generate the paster image of multiple change; Wherein, the paster image changed described in each represents one in described change paster respectively; And
The paster image of described multiple change is connected by described web socket and is sent to described browser program; Wherein, described webpage is programmed to indicate described browser program by the paster image mending of described change on described drawing area.
6. method according to claim 5, is characterized in that, comprising:
Determine the position of the paster of each change in described second frame of video; And
The position of each paster changed representated by the paster image by each described change, generates the patch parameters of the paster image of each described change; Wherein, described webpage is programmed to indicate described browser program by the paster image of each described change on described drawing area, repairs in the position specified by described patch parameters.
7. method according to claim 6, is characterized in that, described patch parameters comprise indicate described can the coordinate of drawing area position, the paster image of each described change width, and the height of the paster image of each described change.
8. method according to claim 1, is characterized in that, described webpage be programmed to indicate described browser program to catch to occur in described can the first event on drawing area, and the event data of described first event is sent to the described webserver; Described first event is mouse event or KeyEvent; Described method comprises:
The event data received from described browser program is connected by described web socket;
Generate described main frame compatible and represent the input data of described event data; And
Described input data are sent to the input control device of described main frame.
9. method according to claim 8, is characterized in that, described first event is mouse event, and described event data indicates the described event location that event can drawing area occur; Described method comprises:
The position coordinates of described main frame is determined according to described event location; And
Generate the input data representing described mouse event and position coordinates.
10. method according to claim 8, is characterized in that, described first event is KeyEvent; Wherein, described event data indicates button; Described method comprises:
Generate the input data representing described button.
11. methods according to claim 1, is characterized in that, comprising:
According to the pixel value of multiple encirclement pixels of the given pixel of encirclement and corresponding to described given pixel and the pixel value surrounding the pixel in described first frame of video of pixel, described BMC generates the predicted value of the given pixel of described second image; And
According to damage or the pixel value of described given pixel is optionally replaced to described predicted value, to generate coded image by lossless requirement.
12. methods according to claim 11, is characterized in that, comprising: compress on the described webserver described encoded image, to generate processed image; Wherein, described webpage is programmed to indicate described browser program to call JavaScript path and carries out decompress(ion) and decoding to described processed image, can show decompress(ion) and decoded image in drawing area described.
13. 1 kinds perform the redirected method of network keyboard, video and the mouse (KVM) implemented by baseboard management controller (BMC), it is characterized in that, comprising:
Described BMC receives the first frame of video and the second frame of video that are redirected from main frame; Wherein said BMC performs the management function of described main frame;
Generating web page on the webserver of described BMC, and described webpage is sent to the browser program operated in computing equipment by network;
Generate the processed image representing described second frame of video;
Java object is stored in the described webserver; Wherein, described webpage is programmed to indicate described browser program to download described Java object, and wherein said Java object defines Java display;
Between described BMC and the described Java object downloaded, set up network connect; Wherein said Java object performs on the Java Virtual Machine of described computing equipment; And
Described processed image is sent to executed described Java object.
14. methods according to claim 13, is characterized in that, comprising:
According to the pixel value of multiple encirclement pixels of the given pixel of encirclement and corresponding to described given pixel and the pixel value surrounding the pixel in described first frame of video of pixel, described BMC generates the predicted value of the given pixel of described second image; And
According to damage or the pixel value of described given pixel is optionally replaced to described predicted value, to generate coded image by lossless requirement.
15. methods according to claim 14, is characterized in that, comprising:
The described webserver compresses described encoded image, to generate processed image;
Described executed Java object carries out decompress(ion) and decoding to described processed image; And
Described decompress(ion) and decoded image are presented on described Java display.
16. 1 kinds of non-transience computer-readable storage mediums, it is characterized in that, there is the computer executable instructions be stored in described storage medium, when described computer executable instructions is performed by the processor of baseboard management controller (BMC) computing machine, cause described processor:
Receive the first frame of video and the second frame of video that are redirected from described main frame; Wherein said BMC performs the management function of main frame;
Generating web page on the webserver of described BMC, and described webpage is sent to the browser program operated in computing equipment by network; Wherein, described webpage is programmed to indicate described browser program to start can drawing area, and sets up web socket with the described webserver and be connected;
Generate the processed image representing described second frame of video;
Between the described webserver and described browser program, set up web socket connect; And
Described processed image is connected by described web socket and is sent to described browser program.
17. non-transience computer-readable storage mediums according to claim 16, is characterized in that, when described instruction performs, cause described processor:
Described second frame of video and described first frame of video are compared, to determine the first pixel of described second frame of video; Wherein, described first pixel has the pixel value different from the pixel value of the respective pixel of described first frame of video;
Generate the first paster image and relevant patch parameters, described first paster image representative comprises a part for described second frame of video of described first pixel;
Described first paster image and patch parameters are connected by described web socket and are sent to described browser program;
Wherein, described webpage is programmed to indicate described browser program that described first paster image on drawing area, can repaired the position indicated at described patch parameters.
18. non-transience computer-readable storage mediums according to claim 17, is characterized in that, when described instruction performs, cause described processor:
Generate the redirection map picture representing described first frame of video; And
Described redirection map picture is connected by described web socket and is sent to described browser program;
Wherein, described webpage is programmed can show described redirection map picture by drawing area described;
Described can drawing area be the painting canvas defined by HTML5; Wherein, described webpage is programmed to indicate described browser program on described painting canvas, show described redirection map picture, and by described first paster image mending on the described redirection map picture shown.
19. non-transience computer-readable storage mediums according to claim 18, is characterized in that, when described instruction performs, cause described processor:
Described second frame of video is divided into multiple paster;
The pixel value of the respective pixel of the pixel value of each pixel of described second frame of video and described first frame of video is compared;
Determine the pixel of multiple change in described second frame of video; Wherein, each pixel value in the pixel of described change is all different from the pixel value of the respective pixel of pixel in described first frame of video of each described change;
Determine the paster of multiple change; Wherein, each pixel comprising at least one and change in the paster of described change;
Generate the paster image of multiple change; Wherein, the paster image changed described in each represents one in described change paster respectively;
The paster image of described multiple change is connected by described web socket and is sent to described browser program; Wherein, described webpage is programmed to indicate described browser program by the paster image mending of described change on described drawing area.
20. non-transience computer-readable storage mediums according to claim 17, is characterized in that, when described instruction performs, cause described processor:
Determine the position of the paster of each change in described second frame of video; And
The position of each paster changed representated by the paster image by each described change, generates the patch parameters of the paster image of each described change; Wherein, described webpage is programmed to indicate described browser program to repair in the position specified by described patch parameters on described drawing area by the paster image of each described change;
Described patch parameters comprise indicate described can the coordinate of drawing area position, the paster image of each described change width, and the height of the paster image of each described change.
21. non-transience computer-readable storage mediums according to claim 20, it is characterized in that, described webpage be programmed to indicate described browser program to catch to occur in described can the first event on drawing area, and by the event of described first event according to being sent to the described webserver; Described first event is mouse event or KeyEvent; When described instruction performs, cause described processor:
The event data received from described browser program is connected by described web socket;
Generate described main frame compatible and represent the input data of described event data; And
Described input data are sent to the input control device of described main frame.
22. non-transience computer-readable storage mediums according to claim 21, it is characterized in that, described first event is mouse event, and described event data indicates the described event location that event can drawing area occur; When described instruction performs, cause described processor:
The position coordinates of described main frame is determined according to described event location; And
Generate the input data representing described mouse event and position coordinates.
23. non-transience computer-readable storage mediums according to claim 21, it is characterized in that, described first event is KeyEvent; Wherein, described event data indicates button; When described instruction performs, described processor is caused to generate the input data representing described button.
24. non-transience computer-readable storage mediums according to claim 16, is characterized in that, when described instruction performs, cause described processor:
According to the pixel value of multiple encirclement pixels of the given pixel of encirclement and corresponding to described given pixel and the pixel value surrounding the pixel in described first frame of video of pixel, described BMC generates the predicted value of the given pixel of described second image; And
According to damage or the pixel value of described given pixel is optionally replaced to described predicted value, to generate coded image by lossless requirement.
25. non-transience computer-readable storage mediums according to claim 24, is characterized in that, when described instruction performs, cause described processor to compress on the described webserver described encoded image, to generate processed image; Wherein, described webpage is programmed to indicate described browser program to call JavaScript path and carries out decompress(ion) and decoding to described processed image, can show decompress(ion) and decoded image in drawing area described.
CN201380074738.6A 2013-03-15 2013-03-15 The method and system that network keyboard, video and mouse (KVM) are redirected Active CN105051713B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/032466 WO2014143034A1 (en) 2013-03-15 2013-03-15 System and method of web-based keyboard, video and mouse (kvm) redirection and application of the same

Publications (2)

Publication Number Publication Date
CN105051713A true CN105051713A (en) 2015-11-11
CN105051713B CN105051713B (en) 2017-08-04

Family

ID=54477792

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380074738.6A Active CN105051713B (en) 2013-03-15 2013-03-15 The method and system that network keyboard, video and mouse (KVM) are redirected

Country Status (1)

Country Link
CN (1) CN105051713B (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107545198A (en) * 2017-05-18 2018-01-05 紫光华山信息技术有限公司 A kind of button management method and device
CN109446460A (en) * 2018-10-24 2019-03-08 国云科技股份有限公司 A kind of HTML5 Online Video Redirectional system and its implementation
CN109634659A (en) * 2018-12-18 2019-04-16 浪潮电子信息产业股份有限公司 Method, apparatus, equipment and the storage medium that a kind of couple of BMC is controlled
CN111190492A (en) * 2019-12-25 2020-05-22 曙光信息产业(北京)有限公司 Method and device for starting KVM
CN113126869A (en) * 2021-03-30 2021-07-16 华东计算技术研究所(中国电子科技集团公司第三十二研究所) Method and system for realizing KVM image high-speed redirection based on domestic BMC chip
CN115543140A (en) * 2022-09-26 2022-12-30 深圳市国鑫恒运信息安全有限公司 Control method for displaying BIOS setting interface cursor on SOL page

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080228865A1 (en) * 2007-03-15 2008-09-18 Nazareno Brier Cruzada Electronic personal computing and videophone system consisting of a remote server system providing dynamic, subscription based virtual computing services & resources, a thin client hardware device connected to a television set and wireless keyboard & mouse, and a wireless mobile device (a Pocket PC Phone)
CN101416173A (en) * 2006-03-31 2009-04-22 STTWebOS股份有限公司 Method and apparatus for information exchange over a web based environment
US8136042B2 (en) * 2007-05-11 2012-03-13 Raritan Americas, Inc. Local port browser interface
US20130007129A1 (en) * 2011-07-01 2013-01-03 Stoneware, Inc. Method and apparatus for application costing based on client hardware

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101416173A (en) * 2006-03-31 2009-04-22 STTWebOS股份有限公司 Method and apparatus for information exchange over a web based environment
US20080228865A1 (en) * 2007-03-15 2008-09-18 Nazareno Brier Cruzada Electronic personal computing and videophone system consisting of a remote server system providing dynamic, subscription based virtual computing services & resources, a thin client hardware device connected to a television set and wireless keyboard & mouse, and a wireless mobile device (a Pocket PC Phone)
US8136042B2 (en) * 2007-05-11 2012-03-13 Raritan Americas, Inc. Local port browser interface
US20130007129A1 (en) * 2011-07-01 2013-01-03 Stoneware, Inc. Method and apparatus for application costing based on client hardware

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107545198A (en) * 2017-05-18 2018-01-05 紫光华山信息技术有限公司 A kind of button management method and device
CN107545198B (en) * 2017-05-18 2020-02-11 新华三信息技术有限公司 Key management method and device
CN109446460A (en) * 2018-10-24 2019-03-08 国云科技股份有限公司 A kind of HTML5 Online Video Redirectional system and its implementation
CN109634659A (en) * 2018-12-18 2019-04-16 浪潮电子信息产业股份有限公司 Method, apparatus, equipment and the storage medium that a kind of couple of BMC is controlled
CN111190492A (en) * 2019-12-25 2020-05-22 曙光信息产业(北京)有限公司 Method and device for starting KVM
CN113126869A (en) * 2021-03-30 2021-07-16 华东计算技术研究所(中国电子科技集团公司第三十二研究所) Method and system for realizing KVM image high-speed redirection based on domestic BMC chip
CN115543140A (en) * 2022-09-26 2022-12-30 深圳市国鑫恒运信息安全有限公司 Control method for displaying BIOS setting interface cursor on SOL page
CN115543140B (en) * 2022-09-26 2024-05-14 深圳市国鑫恒运信息安全有限公司 Control method for displaying BIOS setting interface cursor on SOL page

Also Published As

Publication number Publication date
CN105051713B (en) 2017-08-04

Similar Documents

Publication Publication Date Title
US8887060B2 (en) System and method of web-based keyboard, video and mouse (KVM) redirection and application of the same
US10003671B2 (en) Capturing and replaying application sessions using resource files
US9984408B1 (en) Method, medium, and system for live video cooperative shopping
CN105051713A (en) System and method of web-based keyboard, video and mouse (kvm) redirection and application of the same
US8286076B1 (en) Rendering approximate webpage screenshot client-side
RU2727063C1 (en) Service processing method and device
US20140333509A1 (en) System and method for communicating and interacting with a display screen using a remote device
CN104539682A (en) Debug method, device, mobile terminal, server and system for mobile webpage
US20150058713A1 (en) Method and apparatus for sharing media content and method and apparatus for displaying media content
US8726182B1 (en) Multi-stage throbber
JP7399999B2 (en) Information display method and device
CN108062336A (en) Media information processing method and device
KR20140093849A (en) Method and system for web screen streaming based on dom mutation event
CN109165372B (en) Webpage loading method, device, equipment and storage medium
US20140157104A1 (en) Dynamic sharing and updating of a web page
JP6505849B2 (en) Generation of element identifier
JP6445050B2 (en) Cloud streaming service providing method, apparatus and system therefor, and computer-readable recording medium on which cloud streaming script code is recorded
CN105051714A (en) System and method of web-based virtual media redirection
CN110708270B (en) Abnormal link detection method and device
KR101743765B1 (en) Apparatus and method for providing 3d content and recording medium
CN110457632B (en) Webpage loading processing method and device
US20180189118A1 (en) Systems and methods for transforming applications
CN105979316A (en) Input method and device
WO2014084771A1 (en) Dynamic sharing and updating of a web page
EP3340536B1 (en) Controlling different states of operation of an electronic device over a communication network using a control device

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant