Embodiment
The present invention is used under virtual application environment, more applications being provided, and improves operational efficiency, further improves user experience.This virtual application environment can comprise: the applying virtual environment of Citrix and Microsoft.
The invention discloses a kind of method of under virtual application environment, improving user experience; What be specifically related to is a kind of method that shows time delay behind the virtual applications input text that reduces; Be used for solving prior art; Owing to the demonstration hysteresis of the client that all needs first Connection Service device end to bring at character of the every input of the user interface of client, reduce the problem of satisfaction of users.
See also Figure 1A and be depicted as a kind of flow chart that under virtual application environment, improves the method for user experience.
Step 101, when the user at this client input character, this character of this client interception;
Step 102, this character of this client-cache, and user's display interface of this client shows this character in real time;
Step 103, this client is sent to this server end with all characters that the user this time imports institute's buffer memory through the tunnel between client and server end;
Step 104, this server end is according to the lastest imformation of the character generation user display interface that receives, and this lastest imformation is sent to this client;
Step 105, this client is upgraded user's display interface according to this lastest imformation.
See also the structural representation, particularly character input operation that Figure 1B is depicted as virtual application of the present invention system and experience the structural representation of localized subsystem, be used to carry out said method.
Virtual application system 10 has client 1 and server end 2.The application layer of client 1 is loaded with virtual applications 11, blocking module 12, cache module 13 and localized exchange channels manager 14.Be provided with keyboard drive 15 in the Drive Layer of client 1.Server end 2 can be arranged in the application server.Be provided with localized exchange channels service module 21 in the application layer of server end 2, by virtual application program 22 and server-side processes unit 23.
Localization exchange channels manager 14 is used with localized exchange channels service module 21, to realize the tunnel of 2 of client 1 and server ends.
Server end 2 is loaded with this by virtual application program 22; Can know according to prior art; Sent to the virtual applications 11 of client 1 by the user interface of virtual application program 22, draw and show by the user interface of virtual application program 22 by virtual applications 11.The user can operate input character in this user interface.
Specifically introduce the implementation procedure of said method below in conjunction with Figure 1B.
Server end 2 loads by virtual application program 22; To be sent to the virtual applications 11 of client by the user interface of virtual application program 22; Draw and in display module, show by virtual applications 11, comprise a text input frame in this user interface by the user interface of virtual application program 22.
Step 101 specifically comprises: the user is input character in the text input frame of client 1, and the keyboard that the input of this character can be through knocking client or the mode of virtual soft dish realize.Keyboard is knocked the back and is produced hardware interrupts, and keyboard drive 15 obtains the keyboard scancode of corresponding institute input character.
This client is called blocking module 12 behind the pairing keyboard scancode of the input action of receiving the user, these blocking module 12 these keyboard scancodes of interception are avoided according to the mode of prior art it directly being sent to this server end.That is, avoid every input one word all to carry out primary network and communicate by letter with server end, thus the number of times of reduction network service, and then reduce the wait that time delay is brought.
This blocking module 12 can pass through implemented in many forms, that is, can realize at application layer or keyboard drive layer or the mode through hardware interrupts.For example this blocking module 12 is a keyboard HOOK, after keyboard drive 15 obtains keyboard scancode, calls this keyboard scancode of keyboard HOOK interception.
Step 102 specifically comprises: this blocking module 12 is put into cache module 13 with the character of intercepting (keyboard scancode just); Utilize localized exchange channels manager 14 that the character of intercepting is sent to virtual applications 11 simultaneously, this virtual applications 11 utilizes its local interface program that this character is presented on the display module (not shown) of client in real time.
Circulation execution in step 101,102, when the user imports completion and sends submiting command, execution in step 103.Client is taken out all characters of this input institute buffer memory from cache module 13, send to this server end in the lump through tunnel.
Step 104 specifically comprises: this server end 2 in its user's display interface, inserted all characters of being received by virtual application program 22; This this variation that is taken place by user's display interface of virtual application program of server end monitoring, thus the lastest imformation that the interface delta data obtains user's display interface calculated.
That is, server end 2 is converted into character string with it after receiving keyboard scancode, and structure keyboard message, sends to by virtual application program 22.Received the go forward side by side line program operation of keyboard message by virtual application program 22, thus in the corresponding text input frame the disposable character string of being received of inserting, and demonstrate character string through user interface.Server-side processes unit 23 monitors by the user interface of virtual application program 22 and changes, and calculates the interface and changes residual quantity, generates user interface updating information and mails to client 1.
Simultaneously, can this character string be shown with the specific character display format when moving that server-side processes unit 23 will monitor the display format variation of this character like this, thereby in lastest imformation, increase the character display format information by virtual application program 22.This character display format can comprise font, font size, font, color, spacing, whether underscore, character special efficacy etc.
Step 105 specifically comprises: the virtual applications 11 of client 1 is received user interface updating information, and the interface region of appointment in the lastest imformation demonstrates all character strings of having imported.
This client can be and moves or non-moving terminal, comprises PC, smart mobile phone, personal digital assistant, panel computer, the computer with wireless communication module, vehicle-mounted mobile communication equipment.For the connection network mode of portable terminal, can the SIM online through operator realize and being connected of the Internet, also possibly be to connect into the Internet, or other modes insert the Internet and are connected with server through WIFI.For panel computer, it adopts dummy keyboard to realize the character input, the capturing operation of on the HOOK mode, using soft keyboard hook mode to carry out the character input.
The invention also discloses a kind of method of under virtual application environment, improving user experience, what be specifically related to is a kind of method of virtual application system client to the visit of local resource that be used to realize.Be used for solving in the prior art, the client in the virtual application system can't be visited local resource, the problem that satisfaction of users is low.
Be depicted as a kind of flow chart that under virtual application environment, improves the method for user experience like Fig. 2 A.
Step 201, the operational order that local resource produced that client will be called client is sent to this server end through the tunnel between client and server end;
Step 202, the virtual resource control manager of being called this server end by virtual application program according to this operational order of this server end;
Step 203, this virtual resource control manager converts this operational order the instruction of into client terminal local resource request, and it is sent to this client through this tunnel;
Step 204, the local resource control manager of this client be according to this client terminal local resource request instruction calls local resource, and will call the result and return this server end.
See also the structural representation that Fig. 2 B is depicted as virtual application of the present invention system, particularly local system resource access and support the structural representation of subsystem, be used to carry out said method.
Virtual application system 10 has client 1 and server end 2.The application layer of client 1 is loaded with virtual applications 11, localized exchange channels manager 14 and local resource control manager 16, and local resource control manager 16 is used to carry out the visit to local resource.Server end 2 can be arranged in the application server.Server end 2 has localized exchange channels service module 21, by virtual application program 22 and virtual resource control manager 24.Virtual resource control manager 24 is used for fictionalizing and the identical virtual resource of client terminal local resource response characteristic at server end, is provided at the calling interface of the client terminal local resource under the virtual application system.
Localization exchange channels manager 14 is used with localized exchange channels service module 21, to realize the tunnel of 2 of client 1 and server ends.
Specifically introduce the implementation procedure of said method below in conjunction with Fig. 2 B.
Server end 2 loads by virtual application program 22; To be sent to the virtual applications 11 of client by the user interface of virtual application program 22, and draw and in the display module of client, show by the user interface of virtual application program 22 by virtual applications 11.
Step 201 specifically comprises: the user manipulates the business function of the local resource of client on the user interface of virtual applications 11, and this local resource comprises and obtains yellow pages, checks photo, calls, sends note etc.
After receiving that the user operates the input signal of local resource (for example opening yellow pages), the corresponding operational order that produces this local resource of operation of client.Client sends to this server end through this tunnel with this operational order.
Step 202 specifically comprises: the localized exchange channels service module 21 of server end 2 is sent to this by virtual application program 22 with this operational order, is moved according to this operational order by virtual application program 22, calls virtual resource control manager 24.
Step 203 specifically comprises: judging these operational orders when this virtual resource control manager 24 is not during to the local resource of server end but to the operational order of the local resource of client; Convert operational order the local resource request instruction of client to, and this local resource request instruction is forwarded to the local resource control manager 16 on the client through localized exchange channels service 21, localized exchange channels manager 14.
Promptly; Judging these operational orders when this virtual resource control manager 24 is not during to the local resource of server end but to the operational order of the local resource of client; This virtual resource control manager 24 sends one according to this operational order can be by 16 local resource request instructions of directly carrying out of the local resource control manager on the client, to realize calling the client terminal local resource.
Step 204 specifically comprises: local resource control manager 16 is called actual client terminal local resource (open yellow pages, show phone number list) according to the local resource request instruction of client.Local resource control manager 16 is called the result through localized exchange channels service 21, localized exchange channels manager 14 and virtual resource control manager 24 with the local resource of client and is returned to by virtual application program 22.
This will call that the step that the result returns this server end can be returned through calling, the mode of process communication, event notice realizes.
Be presented on the user interface by the local resource (for example phone number list) of virtual application program 22, and it is sent to client through tunnel shows the client that has access to.
In visit execution above-mentioned steps capable of circulation during local resource, for example, open yellow pages after, the detail record content that also can further check a telephone number, the content of editing telephone number etc.When the content of input telephone number, can adopt the said method of Figure 1A, reduce the demonstration time delay.In addition, the end that also can the picture of client be uploaded onto the server.
In addition, because the data resource of client terminal local can be sent to server end, so also can use this local data resource at server end.
This client can be and moves or non-moving terminal, comprises PC, smart mobile phone, personal digital assistant, panel computer, the computer with wireless communication module, vehicle-mounted mobile communication equipment.For the connection network mode of portable terminal, can the SIM online through operator realize and being connected of the Internet, also possibly be to connect into the Internet, or other modes insert the Internet and are connected with server through WIFI.
Further, in the virtual application operating process, the data of required transmission generally are merely mouse and the KeyEvent and the coordinate information of client of interface information and virtual application system of the server of virtual application system.In this case, the volume of transmitted data of the client of the server of virtual application system and virtual application system seldom that is to say that the required bandwidth of virtual application is very little.
; In case the client of virtual application system is carried out uploading of local resource according to Fig. 2 A, 2B mode; For example the server to the virtual application system carries out a large amount of pictures or mass file transmission, and the packet amount that is produced will increase hundreds of times, and the interactive response drawback of virtual application this moment will be very obvious; That is: interactive transmission causes data packet number multiplication, original insufficient bandwidth; And because descending priority principle is worked as data packet collision, the upstream data bag will be offset by downlink data packet.Confusion takes place in sending order easily.
The procotol of the standard that virtual application is supported comprises: TCP/IP, SPX, IPX, NETBEUI, NWLINK, through test, generally use TCP/IP in the transfer of data of reality.Data transmission bauds is merely 10-100k/s under virtualized environment.This speed can't be accepted the user that need transmit a large amount of pictures and file.So the present invention proposes a kind of data upload method of velocity that under virtual application environment, improves.The present invention guarantees the correctness of transfer of data through the mode of packet being carried out verification.In addition, under the prerequisite that guarantees correctness, can improve data transmission bauds through improving data transmission frequency.
This step 203 comprises that further this client terminal local resource request instruction is packed as N director data bag Server by server end
n, n=1,2 ... N, this server end sends this director data bag Server according to a frequency to this client successively
n
That is each director data bag Server,
nPart in the local resource of corresponding requests destination client, all director data bag Server
nThe part of being asked is common forms a complete destination client local resource.And each director data bag Server
nIn include the id information of the order of indicating the local resource of being asked.The size of each packet is followed the restriction of virtual application system, for example 5k.This frequency can be provided with higherly, to improve transmission speed, for example under the environment of the network speed of common 10m/s, can not establish this director data bag of transmission successively of any delay, if each bag 5k, then this frequency is (10m/s)/5k.This step 204 further comprises: this client is successively to each this director data bag Server that receives
n,, and respectively this client terminal local resource is packaged into should director data bag Server respectively according to the corresponding client terminal local resource of each this client terminal local resource request instruction fetch
nResponse data packet Client
n, n=1,2 ... N sends to this server end;
That is, client is according to director data bag Server
1The content of request is extracted corresponding local resource, is encapsulated as Client
1, by that analogy.Client is received this director data bag Server
nOrder maybe be different with the order of its original transmission.Client is according to receiving this director data bag Server
nOrder send this response data packet Client more successively
nClient can still be sent this response data packet Client according to this frequency
n
Further comprise after the step 204:
Step 205, this response data packet Client of this server end to receiving
nCarry out verification, with the response data packet Client of check errors
NAbandon;
This server end can carry out verification successively according to the order of this response data packet that receives.
This server end multithreading capable of using is receiving that response data packet and director data bag send under the situation about finishing fully, continues the transmission of director data bag simultaneously and to the verification of response data packet start, thereby has practiced thrift the whole time of transfer of data.
Step 206, this server end resends the response data packet Client that abandons with this
NCorresponding director data bag Server
NTo this client, redirect execution in step 204 is up to all response data packet Client
nAll verification is correct;
Data in all response data packet that step 207, this server end will receive are extracted, and combine after the ordering.
Because each response data packet is corresponding with each director data bag, so also can embody this id information in each response data packet.This server end sorts to the data of from each response data packet, extracting based on this id information; Thereby restore the original order of this local resource; And then it is combined, make the local resource of being asked realize from the transmission of client to server end.
In said process,,,, also can recover original appearance even order is upset fully so reduced sequence requirement to the packet in the upload procedure because server end can be resequenced to the local resource that receives.In addition,, and can resend, to improve the correctness of transfer of data erroneous packets because server end of the present invention is with upper frequency move instruction packet, and can handle the raising data processing speed to the response data packet of being received simultaneously.Make that the speed of transfer of data is improved under the prerequisite that guarantees correctness.
After the method raising transmission speed through the application, in the environment of 10m/s, on the client of common low server of joining and same configuration, the data upload actual speed can reach 7.7m/s.
For improving uploading speed, the present invention also discloses another embodiment.
Step 203 further comprises: this server end sends a total director data bag to this client, comprising all information that this client terminal local resource request instruction is arranged;
That is this time be not to transmit the instruction of this client terminal local resource request respectively, but by whole a transmission of total director data bag,, with that avoid bringing and higher collision probability upstream data as far as possible by a plurality of downlink data packet by a plurality of director data bags.Improve the overall data uploading speed.
Step 204 further comprises:
Step 401, this client is based on the corresponding client terminal local resource of the corresponding extraction of this client terminal local resource request instruction;
Step 402, this client is encapsulated as at least one response data packet Client with this local resource
n, n=1,2 ... N is sent to this server end successively;
Wherein, include the id information of the order of indicating entrained local resource in each response data packet.
Further comprise after the step 204:
Step 205, all this response data packet Client of this server end to receiving
nCarry out verification, with the response data packet Client of check errors
NAbandon;
This server end can carry out verification successively according to the order of this response data packet that receives.
Step 206, this server end resends the response data packet Client that abandons with this
NCorresponding director data bag Server
NTo this client, redirect execution in step 204 is up to all response data packet Client
nAll verification is correct;
More concrete, the id information in this server end basis response data packet that abandons is confirmed the local resource information of required extraction, generates client terminal local resource request instruction, thereby regenerates this corresponding director data bag Server
NWhat this step 206 was specifically carried out is that this server resends the response data packet Client with this check errors
NCorresponding director data bag Server
NTo client, this client is extracted the local resource of response according to this director data bag, is packaged into a response data packet Client once more
N, be sent to this server end and carry out verification again, like check errors still, this step that circulates,, carry out subsequent step if terminal check is correct.
Data in all response data packet that step 207, this server end will receive are extracted, and combine after the ordering.
Because this server end sends a total director data bag to this client, thereby avoid conflicting of downlink data packet and upstream data bag as much as possible, improved speed.In addition; Because server end of the present invention is with upper frequency move instruction packet; And can handle the raising data processing speed to the response data packet of being received simultaneously, and can resend erroneous packets, the overall rate of transfer of data is improved and has guaranteed correctness.
For improving uploading speed, the present invention also discloses another embodiment.See also shown in Fig. 2 C.
Step 203 further comprises: this server end sends a total director data bag Server to this client, comprising all information that this client terminal local resource request instruction is arranged;
That is this time be not to transmit the instruction of this client terminal local resource request respectively, but by whole a transmission of total director data bag,, with that avoid bringing and higher collision probability upstream data as far as possible by a plurality of downlink data packet by a plurality of director data bags.
Step 204 further comprises:
Step 401 ', this client is based on the corresponding client terminal local resource of the corresponding extraction of this client terminal local resource request instruction in this total director data bag;
Step 402 ', this client is encapsulated as response data packet with this client terminal local resource partly, is sent to this server end;
Because the limited size system of each packet under the virtual application system is so generally can not be placed on all local resources in the response data packet.This client is chosen first and is encapsulated as response data packet from the client terminal local resource that extracts, and adds the id information of indicating the order of local resource in all local resources in this response data packet therein.
Step 403 ', this client terminal local triggers a director data bag Server
n, n=2 ... N, and according to this director data bag Server
nThis local resource of encapsulation another part is response data packet Client
n, being sent to this server end, n adds 1, and repeated execution of steps 403 ' all is sent to this server end until this all local resources;
Because the first of local resource is packed and send the then current director data bag that needs to trigger the local resource that is directed against further part.So this moment is from Server
2Beginning, a director data bag of the corresponding a part of local resource of every triggering, corresponding encapsulation is also sent this part local resource
This step 403 ' be to send first response data packet Client
1After, client is for continuing to send follow-up local resource, so at this moment, the transmission of autonomous triggering following action is from Server in this locality
2Beginning, the local resource with various piece initiatively sends successively, that is, and Server of every triggering
N, Client of corresponding transmission
N, sending a Client
NAfter, trigger next Server
N, up to this transmission of whole local resource.
Further comprise after the step 204:
Step 205, this response data packet Client of this server end to receiving
nCarry out verification, with the response data packet Client of check errors
NAbandon;
This server end carries out verification successively according to the order of this response data packet that receives.
Step 206, this server end will be to response data packet Client that should check errors
NThe client terminal local resource request instruction of entrained data is encapsulated as director data bag Server
N, being sent to this client, client is extracted corresponding local resource and is encapsulated as Client again
N, redirect execution in step 205 is up to all response data packet Client
nAll verification is correct;
Data in all response data packet that step 207, this server end will receive are extracted, and combine after the ordering.
The effect that realizes through this autonomous mode that triggers is: because this server end sends a total director data bag to this client, thereby avoided conflicting of downlink data packet and upstream data bag as much as possible.Improved speed.
The invention also discloses a kind of method of under virtual application environment, improving user experience, can realize that the client of virtual application system is supported its client peripheral hardware.Be used for solving in the prior art, the client in the virtual application system can't be visited the peripheral hardware of its connection, the problem that satisfaction of users is low.Support pattern comprises two kinds: a kind of is in the application layer support, and a kind of is in the Drive Layer support.In application layer, realize support, can significantly reduce information interaction times, improve the performance of visit peripheral hardware, but need customize according to concrete application program by virtual to the client peripheral hardware.Though the Drive Layer support can not reduce information interaction times, have mutual versatility, once customization can be supported one type of peripheral hardware.
Below specify a kind of method that realizes its client peripheral hardware of client support of virtual application system in application layer.
Be depicted as a kind of flow chart that under virtual application environment, improves the method for user experience like Fig. 3 A.
Step 301, client is sent to this server end with the operational order that peripheral hardware produced of access client through the tunnel between client and server end;
Step 302, the API Calls instruction of being called this peripheral hardware of visit according to this operational order of this server end by virtual application program;
Step 303, this this API Calls of server end interception instructs and it is sent to this client through the tunnel between client and server end;
Step 304, this client are resolved this API Calls instruction, are packaged into the API Calls that the operating system of this client can discern and instruct;
Step 305, the API Calls instruction that this client can be discerned based on this operating system is visited corresponding peripheral hardware in application layer.
See also structural representation, particularly peripheral hardware that Fig. 3 B is depicted as virtual application of the present invention system and support the structural representation of localized subsystem, be used to carry out said method.
Virtual application system 10 has client 1 and server end 2.The application layer of client 1 is loaded with virtual applications 11, editing equipment management device 17, device drives 18, device bus driving 19, device controller 110 and localized exchange channels manager 14.Server end 2 can be arranged in the application server.Be provided with localized exchange channels service module 21 in the application layer of server end 2, by virtual application program 22 and blocking module 25.
Localization exchange channels manager 14 is used with localized exchange channels service module 21, to realize the tunnel of 2 of client 1 and server ends.
Specifically introduce the implementation procedure of said method below in conjunction with Fig. 3 B.This peripheral hardware for example is the bluetooth printer.
Server end 2 loads this by virtual application program 22, is sent to the virtual applications 11 of client 1 by the user interface of virtual application program 22, is drawn and is shown by the user interface of virtual application program 22 by virtual applications 11.
Step 301 specifically comprises: the user manipulates the business function of peripheral hardware on the user interface of virtual applications 11; This client produces an instruction corresponding after receiving user's input signal, this operational order sends to server end 2 through the tunnel of virtual application system.
Step 302 specifically comprises: the localized exchange channels service module 21 of server end 2 is sent to this by virtual application program 22 with this operational order, is moved according to this operational order by virtual application program 22, calls the API Calls instruction of this peripheral hardware of visit.This API Calls instruction comprises used API Name and the call parameters of visit peripheral hardware.
That is, the step of calling the API Calls instruction of step 302 can be considered application layer and is calling Peripheral Interface.The API Calls command visible is a Peripheral Interface.Because in fact the user moves at server end in the application program that client is used, just server end moves this by virtual application program.Thereby, when the peripheral hardware of user capture client, in fact need the peripheral hardware that connected by virtual application access client by this, that is, the peripheral hardware of client is redirected to server end.Therefore, server end is provided with the driver (for example a virtual printer drives) and relevant application program of this peripheral hardware in advance, realizes the visit to peripheral hardware to cooperate this API Calls instruction.Be equal in the prior art under the non-virtualized environment application program of client to the API Calls instruction of client peripheral hardware by the virtual application program 22 API Calls instruction concrete according to this operational order called.
Step 303 specifically comprises: this API Calls instruction triggers blocking module 25 when being called, and these blocking module 25 these API Calls of interception instruct, and are not sent to the device drives of this server end.
In one embodiment, for example for using HOOK, it is customized to and is associated by virtual application program 22 this blocking module 25 in advance.That is, this API Calls instruction triggers the Hook Function of using HOOK when being called, and the API Calls instruction is tackled, and does not send to the device drives of server end.
In one embodiment, this server end instructs at the API Calls of the inner Intercept Interview peripheral hardware of application layer, perhaps, and in the API Calls instruction of the outside Intercept Interview peripheral hardware of application layer.That is, call Peripheral Interface in the inner or outside interception of application layer.
In the present invention, blocking module 25 interception application layer transfer Peripheral Interfaces comprise dual mode, first: the blocking module 25 of application layer oneself encapsulates the interface that calls peripheral hardware, can be called the inside of application layer.That is, server end is provided with Peripheral Interface for realizing to the visit of peripheral apparatus in advance, this Peripheral Interface can be install in the lump in the erection unit driving process or according to the general standard setting of operating system.The original Peripheral Interface that provides of server end application layer this server end of replacement is packaged into the Peripheral Interface that can directly pass through the tunnel access client with it.Second: the mode of the blocking module 25 invoking server end operating system API Hook Functions of application layer encapsulates the Peripheral Interface that peripheral hardware provides; That is: application layer is not replaced the Peripheral Interface that server end provides; Only be to use the mode of API Hook Function, the interface that this Peripheral Interface of HOOK provides replaces with the execution command that is provided with in advance; Can be so that this Peripheral Interface is packaged into directly through the Peripheral Interface of tunnel access client, this situation can be expressed as the outside of application layer.For first kind of situation; These Peripheral Interfaces possibly all can be used by this application of calling this peripheral hardware; Therefore blocking module need be tackled all API Calls instructions, and for second kind of situation, blocking module will only be tackled in the Peripheral Interface and called API Calls instruction partly by this operational order.
In addition, blocking module 25 is pressed invoked this API Calls instruction of tunnel protocol encapsulation, and it is sent to localized exchange channels manager 14 through localized exchange channels service 21.The mode of said encapsulation comprises according to calling api function statement former state encapsulation or according to the extended formatting of being convenient to the client far call that those skilled in the art can infer changes the back encapsulation.
Step 304 specifically comprises: localized exchange channels manager 14 is sealed off the API Calls instruction of encapsulation; And the form that can discern according to the operating system of client is packaged into the API Calls instruction of the operating system access peripheral hardware that is applicable to client again with the API Calls instruction of sealing off, and is forwarded to editing equipment management device 17 then.This encapsulates again exactly reduction of data is become API and parameter of equal value under the client operating system.
Step 305 specifically comprises: the API Calls instruction that this operating system can be discerned is sent out the operating system toward client; Produce the I/O request; This I/O request is sent out toward driving with this peripheral hardware corresponding equipment; This device drives invocation facility bus driver produces the peripheral hardware control instruction and sends to device controller, and this device controller is accomplished calling this peripheral hardware based on this peripheral hardware control instruction.
The detailed implementation of this step 305 is following:
Owing to be the application layer support, editing equipment management device 17 mails to the API Calls instruction operating system of client.Can know that based on prior art instruction produces the I/O request to client based on this API Calls, through the mapping relations of peripheral hardware and driving, the I/O request is sent to peripheral hardware corresponding equipment driving 18, calls the peripheral hardware driver of the reality that client installs.Device drives 18 is invocation facility bus driver 19 thereupon, produces the peripheral hardware control command, sends to device controller 110 then.Device controller 110 and peripheral communication, the operation peripheral hardware is accomplished business function, for example prints etc.
Mode through this application layer support can realize the visit of client to peripheral hardware, and simultaneously, information interaction times is less, and the performance of visit peripheral hardware is higher.
Below specify a kind of method that realizes its client peripheral hardware of client support of virtual application system in Drive Layer.Through directly producing the mode of calling the I/O request msg of peripheral hardware and being sent to client, realize the peripheral hardware support of Drive Layer at server end.
Consult Fig. 4 A and be depicted as a kind of flow chart that under virtual application environment, improves the method for user experience.
Step 401, this client is sent to this server end with the peripheral hardware information of all peripheral hardwares that it connected;
Step 402, this client is sent to this server end with the operational order that a peripheral hardware of user's operated client is produced through the tunnel between client and server end;
Step 403, this server end produce the I/O request data package of calling this peripheral hardware according to this operational order;
Step 404, this server end judges according to this peripheral hardware information whether this I/O request data package is used to call the peripheral hardware of this client, and the I/O request data package of the peripheral hardware that calls this client is tackled, and forwards it to this client through this tunnel;
Step 405, this client drives this peripheral hardware according to this I/O request data package.
See also the structural representation that Fig. 4 B is depicted as virtual application of the present invention system, particularly the peripheral hardware of another is supported the structural representation of localized subsystem, is used to carry out said method.
Virtual application system 10 has client 1 and server end 2.The application layer of client 1 is loaded with virtual applications 11, editing equipment management device 17, virtual unit driving 111, device drives 18, device bus driving 19, device controller 110 and localized exchange channels manager 14.Server end 2 can be arranged in the application server.Be provided with localized exchange channels service module 21 in the application layer of server end 2, by virtual application program 22, virtual unit control manager 26 and virtual unit bus driver 27.Virtual unit control manager 26 is used to manage the visit by 22 pairs of peripheral hardwares of virtual application program, record and forwarding unit control command and communication data.The I/O request of sending when virtual unit bus driver 27 is used to tackle by virtual applications visit peripheral hardware.Server end has also been installed the driver and the application program of using this peripheral hardware of this peripheral hardware.Virtual unit bus driver 27 be used to load peripheral hardware driver, the unloading peripheral hardware driver, fictionalize the virtual unit identical and/or enumerate virtual unit with actual peripheral hardware response characteristic.When this virtual unit is redirected to server end for the peripheral hardware with client; The virtual unit identical that this server end is created with this peripheral hardware of client; It is connected on the virtual bus, all can be sent to the visit that client is carried out physical device through tunnel by virtual application program to the visit of virtual unit.The user closes application or cancels when being redirected, and this virtual unit is cancelled.
Localization exchange channels manager 14 is used with localized exchange channels service module 21, to realize the tunnel of 2 of client 1 and server ends.
Specifically introduce the implementation procedure of said method below in conjunction with Fig. 4 B.
Step 401 specifically comprises:
The virtual unit that step 4011, the editing equipment management device of this client load all peripheral hardwares that the user selects to connect drives;
Step 4012; This peripheral hardware information of all peripheral hardwares that the editing equipment management device of this client is selected the user is sent to the virtual unit control manager of this server end, and this virtual unit control manager is notified the virtual unit bus driver interception instruction relevant with this peripheral hardware of this server end.
More know clearly it, step 401 realizes that through following mode behind client terminal start-up, the editing equipment management device 17 of this client enumerates the peripheral hardware at terminal.The peripheral hardware that user's selection will be supported.According to user's selection, the virtual unit that editing equipment management device 17 loads corresponding peripheral hardware drives 111.What the peripheral hardware that editing equipment management device 17 specifically will be supported through localized exchange channels manager 14, localized exchange channels service 21 notice virtual unit control manager 26 is.Virtual unit control manager 26 notice virtual unit bus driver 27 are prepared interception all communications relevant with this peripheral hardware.
Server end 2 loads this by virtual application program 22; After client 2 and server end connect; Sent to the virtual applications 11 of client 1 by the user interface of virtual application program 22, draw and show by the user interface of virtual application program 22 by virtual applications 11.
Step 402 realizes through following mode; The user manipulates the business function of peripheral hardware on the user interface of virtual applications 11; Thereby produce an operational order, this operational order sends to virtual application system server terminal 2 through the tunnel of virtual application system.This is moved according to this operational order by virtual application program 22.
Step 403 realizes through following mode, is called the API Calls instruction of visit peripheral hardware by virtual application program 22.Under the pattern that the Drive Layer peripheral hardware is supported, can not trigger the Hook Function of blocking module 25, need not be to being tackled by any API Calls instruction of virtual application program.The API Calls instruction is converted to corresponding I/O request data package by the operating system of server end, is sent straight on the device drives.Device drives is called virtual unit bus driver 27.
Optimize in the execution mode one, this I/O request data package can comprise the communication data of the bottom of I/O request, like the URB packet of USB device etc.
In addition; Because the present invention can be directly changed into the I/O request data package with the API Calls instruction; So a kind of API Calls of disposable in advance customization instructs pairing I/O request data package, then can support one type of peripheral hardware; Need not according to concrete being changed, thereby have good versatility by the variation of virtual application program.
Step 404 realizes through following mode; What virtual unit bus driver 27 detected that current I/O request data package is directed against according to this peripheral hardware information is the peripheral hardware (virtual unit) of wanting calling party selected; So tackle these I/O request data package; Do not send to the local device controller of server end, but be forwarded to the editing equipment management device 17 on the client through virtual unit control manager 26, localized exchange channels service 21, localized exchange channels manager 14.Editing equipment management device 17 is used for the accessing operation to peripheral hardware actual on the administrative client.
This virtual unit bus driver 27 is perhaps tackled with the mode of filtration drive through interception on the virtual unit bus.The mode of filtration drive is a known technology.For the interception of virtual unit bus, because bus driver is the lower floor that is in device drives, all can pass through bus to the visit of device drives, just arrive equipment afterwards, thereby on bus, also can realize interception.
At last, step 405 realizes that through following mode editing equipment management device 17 calls corresponding virtual unit and drives 111.Virtual unit driving 111 sends to actual device bus with the I/O request data package and drives 19.Device bus drives 19 and produces the peripheral hardware control command, sends to device controller 110 then.Device controller 110 and peripheral communication, the operation peripheral hardware is accomplished business function.
That is, virtual unit drives 111 according to this I/O request data package, accordings to the step of the device drives of existing peripheral hardware and carries out the driving to equipment.
After the User Interface by virtual with server end is redirected to client, do not use the original device drives of client in client, the present invention is provided with virtual unit in client and drives 111.Virtual unit drives 111 and is used to fictionalize and the behavior of the original driver identical operations of peripheral hardware; Because server end has produced the I/O request data package that is used to call peripheral hardware; Therefore; This virtual unit drive 111 be responsible for will actual invocation facility the I/O request data package be issued to equipment, and pass the information that equipment returns back server end through network, not responsible concrete generation driving data.It is thus clear that client can not be provided with entity device and drive.
Also comprise after this step 405: this client is passed the operation result of this peripheral hardware the virtual unit bus driver of this server end back through this tunnel, this virtual unit bus driver will move result feed back to server end by virtual application program 22.According to above-mentioned steps virtual unit is conducted interviews according to this operation result by virtual application program 22, access result sends to the visit that client is carried out physical device through tunnel once more, finishes visit up to the user.
More than this client described in each technical scheme can be and move or non-moving terminal, comprise PC, smart mobile phone, personal digital assistant, panel computer, computer, vehicle-mounted mobile communication equipment etc. with wireless communication module.See also the sketch map that is connected into network for client shown in Figure 5.
Client can connect into the Internet through its network equipment, and then through the web server, is connected to the application server that is provided with the virtual application system server terminal.
For the connection network mode of portable terminal, can the SIM online through operator realize and being connected of the Internet, also possibly be to connect into the Internet, or other modes insert the Internet and are connected with server through WIFI.To realize that client is connected with the initial of virtual application system server terminal.
Be illustrated in figure 6 as the structural representation of virtual application of the present invention system.It can comprise simultaneously that localized subsystem is experienced in the character input operation, the local system resource access supports subsystem and two kinds of peripheral hardwares to support localized subsystem.That is, virtual application of the present invention system can solve above-mentioned three kinds of problems that subsystem solves respectively in the lump.
Based on shown in Figure 6, localized exchange channels manager 14 is used to resolve and processing server is transmitted by between virtual application program 22 and the local resource control manager 16, by between virtual application program 22 and the blocking module 12 perhaps by the communication data between virtual application program 22 and the editing equipment management device 17.
Localization exchange channels service module 21 is used to transmit the communication data of virtual application system server terminal, virtual resource control manager 24, virtual unit control manager 26, blocking module 25 and each module of client
Can effectively improve user experience through technique scheme, the function of enriching under the virtualized environment is used, and the echo time delay behind the reduction virtual applications input text realizes the visit of virtual application system client to local resource.Be implemented in its client peripheral hardware of client support that application layer realizes the virtual application system; Be implemented in its client peripheral hardware of client support that Drive Layer realizes the virtual application system; Under virtualized environment for user's application offers convenience, to be implemented under the virtual application environment operating experience that obtains to approach local application.