throbber
WO 2007 /087558
`
`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

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket