US8108513B2

Remote monitoring of local behavior of network applications

Summary by NHIP

Remote Application Monitoring

The system intercepts a remotely executed application portion from a server to enable remote monitoring of that distributed segment. It parses the intercepted code to generate an intermediate representation, identifies instrumentation points within it, and modifies the portion to include those points.

Claim Score by NHIP

Read claim 5, the broadest

Abstract

Computer-executable instructions comprising some or all of a program can be delivered to a client for execution on a real-time basis such that the client receives anew the computer-executable instructions for each new execution of the program. Such an environment enables instrumentation instructions to be inserted into the computer-executable instructions after a request and prior to the delivery of the computer-executable instructions. The inserted instrumentation instructions can be spread across multiple deliveries of the same computer-executable instructions, and they can be modified to account for information received from previously inserted instrumentation instructions. The instrumentation instructions can be inserted as part of the server process, the client process, or as part of a proxy server that can be used at the discretion of the program developer.

US8108513B2, drawing sheet 1
Sheet 1 of 11

Term

Projected expiry 3 July 2028.

  1. Priority and filed
  2. Granted
  3. Today
  4. Projected expiry

14 claims: 3 independent, 11 dependent

  1. 1
    One or more computer-readable storage media, the one or more computer-readable storage media not being a signal, the one or more computer-readable storage media comprising computer-executable instructions for modifying an application program to provide for remote monitoring of a remotely executed portion of the application program, the computer-executable instructions directed to steps comprising:intercepting, from a server associated with a network hosted portion of the application program, the remotely executed portion of the application program that was directed to a client that will execute the remotely executed portion of the application program, wherein each combination of the network hosted portion of the application program and the remotely executed portion of the application program comprise a distributed replicated copy of the application program, and wherein further the network hosted portion of the application program can interact with multiple remotely executed portions of the application program to form multiple distributed replicated copies of the application program;parsing the intercepted remotely executed portion of the application program to identify instrumentation points therein, the parsing comprising generating an intermediate representation of the intercepted remotely executed portion of the application program and identifying the instrumentation points with reference to the generated intermediate representation;modifying the remotely executed portion of the application program to provide for instrumentation computer-executable instructions associated with at least one of the identified instrumentation points in accordance with one or more instrumentation policies, the inserted instrumentation computer-executable instructions comprising logging computer-executable instructions for recording information in a log and transmitting the logged information to a log collector, the modifying being adjusted according to information received by the log collector from previous instrumentation computer-executable instructions that were provided for by previously modified remotely executed portions of the application program, and the modifying comprising deleting one or more computer-executable instructions from the received remotely executed portion of the application program;and delivering the remotely executed portion of the application program without modification if the client is not a predetermined client subject to receiving modified remotely executed portions of the application program.
  2. 5
    Broadest claimClaim Score 26, narrow(NHIP)A method for modifying an application program to provide for remote monitoring of a remotely executed portion of the application program comprising the steps of:intercepting, from a server associated with a network hosted portion of the application program, the remotely executed portion of the application program that was directed to a client that will execute the remotely executed portion of the application program, wherein each combination of the network hosted portion of the application program and the remotely executed portion of the application program comprise a distributed replicated copy of the application program, and wherein further the network hosted portion of the application program can interact with multiple remotely executed portions of the application program to form multiple distributed replicated copies of the application program;parsing the intercepted remotely executed portion of the application program to identify instrumentation points therein, the parsing comprising generating an intermediate representation of the intercepted remotely executed portion of the application program and identifying the instrumentation points with reference to the generated intermediate representation;and modifying the remotely executed portion of the application program to provide for instrumentation computer-executable instructions associated with at least one of the identified instrumentation points in accordance with one or more instrumentation policies, the inserted instrumentation computer-executable instructions comprising logging computer-executable instructions for recording information in a log and transmitting the logged information to a log collector, the modifying being adjusted according to information received by the log collector from previous instrumentation computer-executable instructions that were provided for by previously modified remotely executed portions of the application program, and the modifying comprising deleting one or more computer-executable instructions from the received remotely executed portion of the application program;and delivering the remotely executed portion of the application program without modification if the client is not a predetermined client subject to receiving modified remotely executed portions of the application program.
  3. 9
    A system for modifying an application program to provide for remote monitoring of a remotely executed portion of the application program, the system comprising:one or more server computing devices comprising a network hosted portion of the application program such that each combination of the network hosted portion of the application program and a remotely executed portion of the application program comprise a distributed replicated copy of the application program, and wherein further the network hosted portion of the application program can interact with multiple remotely executed portions of the application program to form multiple distributed replicated copies of the application program;one or more log collectors for receiving information from inserted instrumentation computer-executable instructions;and one or more computer-readable media comprising computer-executable instructions for real-time modification of delivered application programs, the computer-executable instructions directed to steps comprising: intercepting the remotely executed portion of the application program from the one or more server computing devices;parsing the intercepted remotely executed portion of the application program to identify instrumentation points therein, the parsing comprising generating an intermediate representation of the intercepted remotely executed portion of the application program and identifying the instrumentation points with reference to the generated intermediate representation;modifying the remotely executed portion of the application program to provide for instrumentation computer-executable instructions associated with the at least one of the identified instrumentation points in accordance with one or more instrumentation policies, the inserted instrumentation computer-executable instructions comprising logging computer-executable instructions for recording information in a log and transmitting the logged information to the one or more log collectors, the modifying being adjusted according to information received by the one or more log collectors from previous instrumentation computer-executable instructions that were provided for by previously modified remotely executed portions of the application program, and the modifying comprising deleting one or more computer-executable instructions from the received remotely executed portion of the application program;and delivering the remotely executed portion of the application program without modification if the client is not a predetermined client subject to receiving modified remotely executed portions of the application program.