`
`PCT /US2007 /060963
`
`received the second SID and key before it proceeds to delete the first SID and
`
`key.
`
`In other embodiments, at step 7114, a first re-connection ticket is deleted
`
`by, for example, the ticket authority 6102 and a replacement first re-connection
`
`ticket is generated by, for example, the ticket authority 6102. Moreover, a
`
`replacement handle can be generated by, for example, the ticket authority 6102.
`
`In some such embodiments, the ticket authority 6102 transmits the replacement
`
`first re-connection ticket and the replacement handle to the intermediary machine
`
`30. Moreover, in some such embodiments, the ticket authority 6102 keeps a
`
`copy of the replacement first re-connection ticket.
`
`In some embodiments, the
`
`ticket authority 6102 waits for the client machine 1 Oto acknowledge that it has
`
`received the replacement first re-connection ticket before it proceeds to delete
`
`the first re-connection ticket.
`
`After the first SID and key (or, in some embodiments, the first re(cid:173)
`
`connection ticket) is validated, the intermediary machine 30, using the address of
`
`the first protocol service 4502, re-establishes, at step 7116, the first protocol
`
`connection 4504b between the intermediary machine 30 and the first protocol
`
`service 4502. Having re-established the first protocol connection 4504b between
`
`the intermediary machine 30 and the first protocol service 4502, it is then
`
`determined whether the second SID and key, or re-connection ticket, is valid.
`
`In one embodiment, the validity of the second SID and key is determined
`
`by using the first protocol service 4502. For example, the intermediary machine
`
`30 transmits the second SID and key to the first protocol service 4502.
`
`In one
`
`499
`
`Petitioner's Exhibit 1002, Page 771
`
`
`
`WO 2007/087558
`
`PCT/US2007 /060963
`
`embodiment, the first protocol service 4502 determines the validity of the second
`
`SID and key by comparing it to a previously kept copy of the second SID and
`
`encrypted authentication credentials.
`
`If the first protocol service 4502 determines
`
`the second SID and key to be valid, the re-established first protocol connection
`
`4504b between the first intermediary machine 30 and the first protocol service
`
`4502 is linked, at step 7202, to the maintained secondary protocol connection
`
`4508 between the first protocol service 4502 and each of the one or more host
`
`services 4516. Otherwise, if the first protocol service 4502 determines the
`
`second SID and key to be invalid, the re-established first protocol connection
`
`4504b is not linked to the one or more maintained secondary protocol
`
`connections 4508 and the client machine 1 O is refused reconnection to the one
`
`or more host services 4516.
`
`In embodiments using re-connection tickets, the validity of the second re(cid:173)
`
`connection ticket is determined by using the first protocol service 4502. For
`
`example, the intermediary machine 30 transmits the second re-connection ticket
`
`to the first protocol service 4502.
`
`In one embodiment, the first protocol service
`
`4502 determines the validity of the second re-connection ticket by comparing it to
`
`a previously kept copy of the second re-connection ticket.
`
`In another
`
`embodiment, the first protocol service 112 validates a first re-connection ticket for
`
`the connection between the first protocol service 4502 and the host service 4516,
`
`or in another embodiment, between the first protocol service 4502 and another
`
`first protocol service 4502 or an intermediary machine 30.
`
`In a similar manner,
`
`each "hop" thereafter between the first protocol service 4502 and the host service
`
`500
`
`Petitioner's Exhibit 1002, Page 772
`
`
`
`WO 2007/087558
`
`PCT /US2007 /060963
`
`4516 may be validated with one or more tickets, either initial or re-connection
`
`tickets, to validate the continued use of the "hop" on behalf of the client machine
`
`10.
`
`It the first protocol service 4502 determines the second re-connection
`
`ticket to be valid, the re-established first protocol connection 4504b between the
`
`first intermediary machine 30 and the first protocol service 4502 is linked to the
`
`maintained secondary protocol connection 4508 between the first protocol
`
`service 4502 and each of the one or more host services 451 6. Otherwise, if the
`
`first protocol service 4502 determines the second re-connection ticket to be
`
`invalid, the re-established first protocol connection 4504b is not linked to the one
`
`or more maintained secondary protocol connections 4508 and the client machine
`
`10 is refused re-connection to the one or more host services 451 6. In the case of
`
`a multiple-hop connection between the first protocol service 4502 and the host
`
`service 451 6, each "hop" may be validated for re-connection and be linked to the
`
`previous "hop" until the final "hop" to the host service 4516 is validated, or until
`
`one of the "hops" is refused re-connection.
`
`At step 7204, the second SID and key is deleted by, for example, the first
`
`protocol service 4502 and a replacement second SID and key is generated by,
`
`for example, the first protocol service 4502 for transmission to the client machine
`
`10.
`
`In such an embodiment, the first protocol service 4502 keeps a copy of the
`
`replacement second SID and key. In some embodiments, the first protocol
`
`service 4502 waits for the client machine 10 to acknowledge that it has received
`
`501
`
`Petitioner's Exhibit 1002, Page 773
`
`
`
`WO 2007/087558
`
`PCT /US2007 /060963
`
`the replacement second SID and key before it proceeds to delete the second
`
`session id and key
`
`In some embodiments, the second re-connection ticket is deleted by, for
`
`example, the first protocol service 4502 and a replacement second re-connection
`
`ticket is generated by, for example, the first protocol service 4502 for
`
`transmission to the client machine 10.
`
`In such an embodiment, the first protocol
`
`service 4502 keeps a copy of the replacement second re-connection ticket.
`
`In
`
`some embodiments, the first protocol service 4502 waits for the client machine
`
`1 0 to acknowledge that it has received the replacement second re-connection
`
`ticket before it proceeds to delete the second re-connection ticket.
`
`In the case of
`
`validating one or more of the "hops" for re-connecting a client 108, one or more
`
`replacement re-connection tickets, at step 948, may be generated and/or a copy
`
`saved by the ticket authority 136, intermediary nodes 632, any of the computing
`
`nodes, or one or more of the first protocol services 112.
`
`At step 7206, the replacement second SID and key are transmitted to the
`
`client machine 10. For example, the ACR Service 5002 can transmit, through the
`
`intermediary machine 30, the replacement second SID and key to the client
`
`machine 10. Moreover, in one embodiment, the first protocol service 4502
`
`transmits, through the intermediary machine 30, the replacement second SID
`
`and key to the client machine 1 0.
`
`In some embodiments, the replacement first re-connection ticket and the
`
`replacement second re-connection ticket are transmitted to the client machine
`
`10. For example, the ticket authority 6102 can transmit, through the intermediary
`
`502
`
`Petitioner's Exhibit 1002, Page 774
`
`
`
`WO 2007 /087558
`
`PCT /US2007 /060963
`
`machine 30, the replacement first re-connection ticket to the client machine 1 0.
`
`Moreover, in one embodiment, the first protocol service 4502 transmits, through
`
`the intermediary machine 30, the replacement second re-connection ticket to the
`
`client machine 10.
`
`In other embodiments, the replacement re-connection tickets
`
`for one or more "hops" may be transmitted to one or more of the intermediary
`
`machine 30, any of the computing nodes, or one or more of the first protocol
`
`services 4502.
`
`Alternatively, in other embodiments, the methods described above provide
`
`for only a single re-connection ticket for the client machine 1 0 and/or a single re(cid:173)
`
`connection for each of the "hops" between the client machine 1 o and a host
`
`service 4516. As such, rather than using both first and second re-connection
`
`tickets, in these embodiments, only the aforementioned single re-connection
`
`ticket is used.
`
`In one such embodiment, the client agent 4506 of the client
`
`machine 1 0 is also provided with the address of the first protocol service 4502.
`
`To re-connect to the host services 4516, the client agent 4506 transmits the
`
`single re-connection ticket directly to the first protocol service 4502. The first
`
`protocol service 4502 then determines whether the single re-connection ticket is
`
`valid.
`
`In one embodiment, the first protocol service 4502 determines the validity
`
`of the single re-connection ticket by comparing it to a previously kept copy of the
`
`single re-connection ticket.
`
`If the first protocol service 4502 determines the
`
`single re-connection ticket to be valid, the re-established first protocol connection
`
`4504 between the client machine 1 0 and the first protocol service 4502 is linked
`
`to the maintained secondary protocol connection 4508 between the first protocol
`
`503
`
`Petitioner's Exhibit 1002, Page 775
`
`
`
`WO 2007/087558
`
`PCT/US2007 /060963
`
`service 4502 and each of the one or more host services 451 6. Otherwise, if the
`
`first protocol service 4502 determines the single re-connection ticket to be
`
`invalid, the re-established first protocol connection 4504 is not linked to the one
`
`or more maintained secondary protocol connections 4508 and the client machine
`
`1 O is refused re-connection to the one or more host services 4516.
`
`After the single re-connection ticket is validated, the single re-connection
`
`ticket is deleted by, for example, the first protocol service 4502 and a
`
`replacement single re-connection ticket is generated by, for example, the first
`
`protocol service 4502 for transmission to the client machine 1 O.
`
`In transmitting
`
`the replacement single re-connection ticket to the client machine 10, the first
`
`protocol service 4502 keeps a copy of the replacement single re-connection
`
`ticket.
`
`In some embodiments, the first protocol service 4502 waits for the client
`
`machine 10 to acknowledge that it has received the replacement single re(cid:173)
`
`connection ticket before it proceeds to delete the single re-connection ticket.
`
`In yet another embodiment, like the first and second re-connection tickets,
`
`the single re-connection ticket is configured for automatic deletion after a pre,
`
`determined period of time following a failure in the connection 4504, and/or
`
`following a clean termination of the connection 4504.
`
`In an embodiment not shown in FIGS. 71-72, a ticket authority 6102 could
`
`also be used instead of the ACR Service 5002 for reconnecting a client machine
`
`10 to a host service 4516. In the method 7100, the ticket authority 6102 would
`
`generate and transmit reconnection tickets instead of SIDs and keys as with the
`
`ACR Service 5002. For example, at step 7106, a ticket authority 6102 would
`
`504
`
`Petitioner's Exhibit 1002, Page 776
`
`
`
`WO 2007/087558
`
`PCT/US2007 /060963
`
`determine in step 7108 if a first reconnect ticket received from the intermediary
`
`machine 30 in step 7106 is valid. At step 71 14 the ticket authority 6102 would
`
`delete the first reconnection ticket and generates a second reconnection ticket
`
`with a handle. As such, the ticket authority 6102 facilitates re-establishing and re(cid:173)
`
`authenticating the communication session of the client machine 10 to the host
`
`service 4516.
`
`Performance of the network 150 can be monitored to increase
`
`performance perceived by the user of a client machine 10. The bandwidth and
`
`latency of the network 150 is a factor that affects the interaction experience of the
`
`end-user of the client machine 1 o. Other factors include the number of virtual
`
`machines executing on a remote machine 30 or the number of applications
`
`executing within a virtual machine on the remote machine 30, the amount of data
`
`being executed (or load) of the applications, the amount of processing (or load)
`
`being done by the client machine 1 O. During operation, each of these factors
`
`fluctuates. As data is transmitted through the network 150 the amount of
`
`available bandwidth of the network is reduced. The number of requests to a
`
`remote machine 30 increases and decrease thereby varying the load of the
`
`remote machine 30. One aspect of the invention features systems and method
`
`for determining whether and how these independent changes affect the
`
`interaction experience of the end-user.
`
`FIG. 73 is a conceptual block diagram of an embodiment of a system that
`
`includes client software 7302 and remote machine software 7306 which monitor
`
`the status of the connection between the client machine 1 O and the remote
`
`505
`
`Petitioner's Exhibit 1002, Page 777
`
`
`
`WO 2007/087558
`
`PCT /US2007 /060963
`
`machine 30.
`
`It should be understood the various modules are not necessarily
`
`individual applications.
`
`Instead, the modules can be provided as a single
`
`software application or grouped as any combination of individual applications.
`
`Additionally, certain modules may be physical hardware.
`
`The client software 7302 is in communication with a transceiver module
`
`7304 of the client machine 1 0. The client software 7302 includes a trigger
`
`module 7308 in communication with the transceiver module 7304. The trigger
`
`module 7308 generates a message 7310 that is transmitted to the remote
`
`machine software 7306. The message 7310 is configured to generate a
`
`response from the remote machine software 7306 when the message is
`
`processed by the remote machine 30. For example, the message can include a
`
`user input event that results in a graphical response from the remote machine.
`
`In
`
`one embodiment, the trigger module 7308 generates the message 7310 on a
`
`periodic basis. The length of the period can be configurable by the user of the
`
`client machine 1 0 or another user such as a system administrator.
`
`In another
`
`embodiment, the trigger module generates the message 7310 in response to a
`
`specific end-user input using input device 7312.
`
`The transceiver module 7304 is in communication with network 150 and is
`
`configured to transmit the message 7310 from the client machine 10 to the
`
`remote machine 30 via the network 150 and receive a response from the remote
`
`machine 30.
`
`If necessary, the transceiver module 7304 formats the message
`
`7310 for transmission via the network 150 and formats the response for
`
`execution by the client software 7302.
`
`506
`
`Petitioner's Exhibit 1002, Page 778
`
`
`
`WO 2007/087558
`
`PCT/US2007 /060963
`
`Optionally, the client software 7302 can include a tinner module 7316 and
`
`a calculation module 7314. The timer module 7316 is in communication with the
`
`trigger module 7308 and the calculation module 7314. The timer module 7316 is
`
`configured to measure the elapsed time from the generation of the message
`
`7310 until the client machine 10 completes the instructions included in the
`
`response from the remote machine.
`
`In one embodiment, the timer module 7316
`
`generates a start timestamp and a completion timestamp and determines the
`
`elapsed time therebetween.
`
`In another embodiment, the timer module acts as a
`
`stopwatch and generates the elapsed time without performing calculations.
`
`In
`
`one embodiment, the elapsed time is sent to another remote machine 30' for
`
`further processing, such a calculation of an expected elapsed time, trending
`
`analysis, and storage.
`
`In another embodiment, the elapsed time is forwarded to
`
`the calculation module from comparison against an expected value to determine
`
`if the environment 7300 is operating within specification.
`
`In still another
`
`embodiment, the elapsed time is forwarded to the remote machine 30 that the
`
`client is communicating with.
`
`The remote machine software 7306 is in communication with a transceiver
`
`module 7326 of the remote machine 30. The remote machine software 7306
`
`includes an echo application 7318, an optional initiation module 7320, and an
`
`optional confirmation module 7328.
`
`In one embodiment, the remote machine
`
`software 7306 is in communication with the application programs 7322 and the
`
`operating system 7324 that are executing on the remote machine 30.
`
`In another
`
`embodiment, the remote machine software 7306 is in communication with a
`
`507
`
`Petitioner's Exhibit 1002, Page 779
`
`
`
`WO 2007 /087558
`
`PCT /US2007 /060963
`
`computing environment and a hypervisor executing on the remote machine 30.
`
`In still other embodiments, the remote machine software 7306 executes in a
`
`virtual machine provided by a hypervisor and, in these embodiments,
`
`communicates with application programs provided by the computing environment
`
`and the virtualized operating system of the virtual machine. The echo application
`
`7318 is in communication with the transceiver module 7326 and if present each
`
`of the initiation module 7320 and the confirmation module 7328.
`
`In one
`
`embodiment, the echo application 7318 is invisible to the end-user of the client
`
`machine 10. For example, the echo application 7318 can be a windowless (e.g.,
`
`stealth application). The end-user does not interact directly with the echo
`
`application 7318.
`
`The echo application generates a graphical response 7330 to the
`
`message 7310 from the client software 7302. The graphical response message
`
`7330 includes instructions to manipulate, modify, update, alter, or change the
`
`display of the client machine 10 in a manner that is not perceivable by the end(cid:173)
`
`user of the client machine 1 o, but is perceivable by client software 7302 of the
`
`client machine 10.
`
`In one embodiment, the echo application 7318 executes
`
`invisibly alongside the application programs 7322.
`
`In such an embodiment, the
`
`echo application 7318 is subject to the same environmental effects and changes
`
`as the application programs 7322.
`
`The transceiver module 7326 is in communication with network 150 and is
`
`configured to transmit the response 7330 from the remote machine 30 to the
`
`client machine 10 via the network 150 and receive the message 7310 from the
`
`508
`
`Petitioner's Exhibit 1002, Page 780
`
`
`
`WO 2007 /087558
`
`PCT /US2007 /060963
`
`client machine 1 o.
`
`ff necessary, the transceiver module 7304 formats the
`
`response 7330 for transmission via the network 150 and formats the message
`
`7310 for execution by the remote machine 30. The transceiver module forwards
`
`the received message 7310 to the operating system 7324 of the remote machine
`
`30.
`
`The operating system 7324 is configured to read and process the
`
`message 7310 to generate an input event 7332 for the echo application 7318.
`
`The input event 7332 can be a known WINDOWS input event or a custom input
`
`event. Conceptually, the input event 7332 is configured to cause the echo
`
`application 7318 generate the graphic response 7330.
`
`The initiation module 7320 is in communication with the application
`
`programs 7322 and the operating system 7324.
`
`In one embodiment, the
`
`initiation module 7320 monitors the application programs 7322 and automatically
`
`initiates the echo application 7318 when a specific one of the application of the
`
`application programs 7322 begins executing on the remote machine 30.
`
`In
`
`another embodiment, the initiation module 7320 initiates the echo application
`
`when the remote machine 30 receives the message 7310.
`
`In another
`
`embodiment, the echo application 7318 is initiated when a client/remote machine
`
`session begins and remains quiescent until the message 7310 is received.
`
`It
`
`should be understood that the initiation module can initiate one or more instances
`
`of the echo application 7318. For example, the initiation module 7320 may start
`
`a respective echo application 7318 for each client machine 1 O that connects to
`
`509
`
`Petitioner's Exhibit 1002, Page 781
`
`
`
`WO 2007/087558
`
`PCT /US2007 /060963
`
`the remote machine 30 or that connects to a virtual machine provided by the
`
`remote machine 30.
`
`The confirmation module 7328 is in communication with the echo
`
`application 7318.
`
`In one embodiment, a function performed by the confirmation
`
`module 7328 includes monitoring the echo application 7318 to ensure an
`
`instance of the echo application 7318 is executing for each connection between a
`
`client machine 1 0 and a remote machine 30 that is of interest. The confirmation
`
`module 7328 may report whether the echo application 7318 is running and
`
`functioning properly to another remote machine 30', such as a management
`
`server described above, or the confirmation module 7328 may report whether the
`
`echo application 7318 is running and functioning properly to the operating system
`
`7324 of the remote machine 30 or to a virtual machine provided by a hypervisor.
`
`With reference to FIG. 74, an embodiment of a method 7400 of operation
`
`and interaction between the client machine 1 o and remote machine 30 is
`
`described. As a general overview, the method can be conceptualized as a
`
`generating a measurement for use in calculating an end-user experience metric
`
`in the remote machine based computing environment 7300. The operation of the
`
`client software 7302 and the remote machine software 7306 includes transmitting
`
`the message 7310 to the application 7318 (step 77410), receiving a graphic
`
`response (step 77 420} from the application 7318, and determining an elapsed
`
`time (step 77430} that represents the end-user's interaction experience.
`
`In one embodiment, the trigger module 7308 on the client software 7302
`
`transmits the message 7310 via the transceiver 7304 on a periodic basis.
`
`In
`
`510
`
`Petitioner's Exhibit 1002, Page 782
`
`
`
`WO 2007/087558
`
`PCT/US2007 /060963
`
`another embodiment, the trigger module 7308 generates the message 7310 in
`
`response to end-user input. The message 7310 can include instructions to
`
`generate a WINDOWS message that is forwarded to the application 7318.
`
`Alternatively, the message 7310 can be the WINDOWS message and represent
`
`an input event to the application 7318.
`
`In one embodiment, the message 7310 is
`
`transferred over a separate virtual channel within the ICA protocol stream, and a
`
`WINDOWS message generated by the remote machine software 7306 when the
`
`message 7310 is received.
`
`When the remote machine software 7306 receives the message 7310, the
`
`echo application 7318 processes the instructions of the message 7310 and
`
`generates the graphic response 7330.
`
`In one embodiment, the graphic response
`
`7330 generates a change on the display of the client that is undetectable by the
`
`end-user.
`
`In various embodiments, the graphic response 7330 can include
`
`instructions to change a small number of pixels on the client display, instructions
`
`to change single pixel at the origin (i.e., top left corner) of the client display,
`
`instructions to cycle a pixel of the display through a range of values, or
`
`instructions to cycle a change through a range of pixel locations of the display.
`
`When the client software 7302 processes the graphic response 7330, the
`
`elapsed time between the transmission of the transmission of the message 731 0
`
`and the completion of the processing of the graphic response 7330 is
`
`determined.
`
`In one embodiment, the client software 7302 determines the
`
`elapsed time and forwards the elapsed time to a management remote machine
`
`30' for storage and trending analysis.
`
`In another embodiment, a start timestamp
`
`511
`
`Petitioner's Exhibit 1002, Page 783
`
`
`
`WO 2007/087558
`
`PCT /US2007 /060963
`
`and an end timestamp are forwarded from the timer module 7316 the
`
`management remote machine 30'.
`
`In such an embodiment the management
`
`remote machine 30' determines the elapsed time.
`
`It should be understood that
`
`the elapsed time measurement is equivalent to the interaction experience as
`
`used herein.
`
`The management remote machine 30' can store multiple interaction
`
`experience measurements. The stored measurements can be used to isolate
`
`which portion of a client machine 1 O connection is not performing as expected.
`
`For example, network timing measurement for the same time period can be
`
`compared to the interaction experience to isolate application, virtual machine,
`
`and execution machine load trends. Also, the stored interaction experience
`
`measurements can be analyzed using known methods to determine an expected
`
`interaction experience value. The expected value can be compared to the
`
`measured value, either by the calculation module 7314 of the client software
`
`7302 or the management remote machine 30'.
`
`With reference to FIG. 75, an embodiment of the operational method 7500
`
`of the remote machine 30 and remote machine software 7306 is described. After
`
`the client machine 1 O initiates (step 77505) established a session with a remote
`
`machine 30, the remote machine software initiates (step 77510) the echo
`
`application 7318. The remote machine 30 receives (step 77520) the message
`
`7310 from the client machine 10. Once the message 7310 is received, the
`
`confirmation module 7328 confirms (step 77530) that the echo application 7318
`
`is executing. From the message 7310, the operating system 7324, or the
`
`512
`
`Petitioner's Exhibit 1002, Page 784
`
`
`
`WO 2007 /087558
`
`PCT/US2007 /060963
`
`hypervisor, generates (step 77540) the input event 7332 that is processed by the
`
`echo application to generate (step 77550) the graphic response 7330.
`
`The remote machine software 7306 initiation module 7320 initiates (step
`
`77510) the echo application 7318 when the client machine 10 starts the session.
`
`In one embodiment, a single echo application 7318 is initiated.
`
`In other
`
`embodiments, an echo application 7318 is started for each of the applications
`
`programs 7322 executing on the remote machine 30.
`
`In such embodiments, the
`
`interaction experience can be measured on an application by application basis.
`
`In other embodiments, an echo application 7318 is started for each of the virtual
`
`machines executing on the remote machine 30.
`
`In these embodiments, the
`
`interaction experience can be measured on a virtual machine basis.
`
`In another
`
`embodiment, a single echo application 7318 is started for an execution machine
`
`executing multiple program application programs 7322. For example, a remote
`
`machine may communicate with multiple client machines 1 0. Each of the client
`
`machines 1 0 connects to the remote machine 30 through a different network path
`
`and thus has a different interaction experience. The echo application 7318 is not
`
`visible to the user. That is, the user does not interact directly with the echo
`
`application 731 8 and the echo application 731 8 is not show on the display of the
`
`client.
`
`In one embodiment, the echo application 7318 is a windowless
`
`application.
`
`The transceiver module 7326 receives (step 77520) the message 7310
`
`from the client machine 1 0.
`
`In one embodiment, the transceiver module 7326
`
`includes a network interface card that communicates with the network 150. The
`
`513
`
`Petitioner's Exhibit 1002, Page 785
`
`
`
`WO 2007/087558
`
`PCT/US2007 /060963
`
`transceiver module can format the received message 7310 so that the message
`
`7310 is readable by the operating system 7324.
`
`Prior to generating the graphic response 7330, the confirmation module
`
`7328 confirms (step 77530) that the echo application 7318 is executing in user
`
`space assigned by the operating system.
`
`In some embodiments, the user space
`
`is assigned by the native operating system, that is, the operating system of the
`
`execution machine. In other embodiments, the user space is assigned by a
`
`virtualized operating system, that is, an operating system of a virtual machine
`
`provided by a hypervisor. In one embodiment, the confirmation module 7328
`
`communicates an indication that the echo application 7318 is executing to the
`
`operating system.
`
`In one embodiment, the remote machine 30 creates a log
`
`even on the remote machine 30 to indicate that echo application 7318 was not
`
`running when the message 731 0 was received or when the session was initiated.
`
`Once confirmation of the execution of the echo application 7318 is
`
`received, the operating system processes the message 7310 thereby generating
`
`(step 77540) the input event 7332.
`
`In one embodiment, the input event is a
`
`WINDOWS message that is forwarded to the echo application 7318 to model a
`
`normal input event WINDOWS message. The input event is designed to cause
`
`the echo application 7318 to generate a graphic response 7330. Exemplary
`
`input events can include, but are not limited to, mouse movements, keyboard
`
`strokes, window generation, window destruction, or any other event that
`
`generates a graphic response from the echo application 7318.
`
`In another
`
`514
`
`Petitioner's Exhibit 1002, Page 786
`
`
`
`WO 2007/087558
`
`PCT /US2007 /060963
`
`embodiment, the input event is a custom "user-defined" application specific
`
`WINDOWS message.
`
`The echo application 7318 processes the input event 7332 and generates
`
`(step 77550) the graphic response 7330, which is in turn forwarded to the client
`
`machine 1 O.
`
`In various embodiments, the graphic response 7330 is generated
`
`once the echo application 7318 has performed a set of tasks such as:
`
`calculations, memory usage, disk access, and network resource access. The
`
`echo application 7318 can be configured by an administrator to perform specified
`
`tasks.
`
`In another embodiment, the echo application 7318 can perform execution
`
`tasks that mirror an application program 158 executing on the remote machine
`
`30 and generate the graphic response 7330.
`
`I
`
`In one embodiment, the graphic response 7330 includes instructions that
`
`cause a change on the display of the client machine 1 O that is not detectable by
`
`the end-user. For example, the graphic response 7330 includes instructions to
`
`change a single pixel at the origin of the display. More complex graphic
`
`responses can be used to differentiate from graphic generated by the application
`
`programs 7322 or to detect any response indicators lost from graphic protocol
`
`optimizations. For example, the pixel value can cycle through an expected range
`
`of values.
`
`In another embodiment, the graphic response causes a pixel location
`
`to cycle through an expected range of pixel locations. Another example of a
`
`graphic response is a BitBlt with an unexpected Raster-Operation, either to the
`
`display or an off-screen surface (e.g., an off-screen buffer).
`
`515
`
`Petitioner's Exhibit 1002, Page 787
`
`
`
`WO 2007/087558
`
`PCT /US2007 /060963
`
`In addition to measuring the overall end-user interaction experience, in
`
`various embodiments, sub-metrics that comprise the overall end-user interaction
`
`experience metric can be measured and recorded. Generally, these sub-metrics
`
`include the time required by the client machine 10 to generate and send the
`
`trigger message 7310, the network 150 latency, the time required by the remote
`
`machine 30 to process the message 7310 and generate and transmit the graphic
`
`response 7330, and the time required by the client machine 1 o to process the
`
`graphic response 7330.
`
`With reference to FIG. 76 and FIG. 77, embodiments of a method of
`
`generating client machine 1 0 sub-metrics are described. From the perspective of
`
`the client machine 1 o, there are two types of sub-metrics that are generated a)
`
`those related to generating and transmitting the trigger message 7310 as shown
`
`in FIG. 76 and b) those related to detecting and processing the graphic response
`
`7330 as shown in FIG. 77.
`
`With reference to FIG. 76, one embodiment of a method 7600 for
`
`capturing sub-metrics related to generating the trigger message 731 0 is
`
`described. Assuming that the trigger message 7310 is generated in response to
`
`use of the input device 7312, the trigger module 7304 detects (step 77610) use
`
`of the input event and marks (step 77620) the time of detection. The trigger
`
`module generates (step 77630) the message 7310 and marks (step 77640) the
`
`time the message generating is completed. The trigger module 7308 forwards
`
`the message 7310 to the transceiver 304, which then transmits (step 77650) the
`
`message 7310 to the remote machine 30. The trigger module 7308 or the
`
`516
`
`Petitioner's Exhibit 1002, Page 788
`
`
`
`WO 2007/087558
`
`PCT /US2007 /060963
`
`transceiver module 7304 marks (step 77660) the time the message 7310 is
`
`transmitted to the remote machine 30.
`
`With reference to FIG. 77, one embodiment of a method 7700 for
`
`capturing sub-metrics related t