US9843490B2 - Methods and systems for analytic code injection - Google Patents

Methods and systems for analytic code injection Download PDF

Info

Publication number
US9843490B2
US9843490B2 US13/803,365 US201313803365A US9843490B2 US 9843490 B2 US9843490 B2 US 9843490B2 US 201313803365 A US201313803365 A US 201313803365A US 9843490 B2 US9843490 B2 US 9843490B2
Authority
US
United States
Prior art keywords
analytic
principal
web pages
identity
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active, expires
Application number
US13/803,365
Other versions
US20140280867A1 (en
Inventor
Lloyd Leon Burch
Duane Fredrick Buss
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
JPMorgan Chase Bank NA
NetIQ Corp
Original Assignee
NetIQ Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Assigned to NOVELL, INC. reassignment NOVELL, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BURCH, LLOYD LEON, BUSS, DUANE FREDRICK
Priority to US13/803,365 priority Critical patent/US9843490B2/en
Application filed by NetIQ Corp filed Critical NetIQ Corp
Assigned to CREDIT SUISSE AG, AS COLLATERAL AGENT reassignment CREDIT SUISSE AG, AS COLLATERAL AGENT GRANT OF PATENT SECURITY INTEREST (FIRST LIEN) Assignors: NOVELL, INC.
Assigned to CREDIT SUISSE AG, AS COLLATERAL AGENT reassignment CREDIT SUISSE AG, AS COLLATERAL AGENT GRANT OF PATENT SECURITY INTEREST (SECOND LIEN) Assignors: NOVELL, INC.
Assigned to NETIQ CORPORATION reassignment NETIQ CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: NOVELL, INC.
Publication of US20140280867A1 publication Critical patent/US20140280867A1/en
Assigned to NOVELL, INC. reassignment NOVELL, INC. RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME 030323/0411 Assignors: CREDIT SUISSE AG
Assigned to NOVELL, INC. reassignment NOVELL, INC. RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME 030323/0401 Assignors: CREDIT SUISSE AG
Assigned to BANK OF AMERICA, N.A. reassignment BANK OF AMERICA, N.A. SECURITY INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: ATTACHMATE CORPORATION, BORLAND SOFTWARE CORPORATION, MICRO FOCUS (US), INC., NETIQ CORPORATION, NOVELL, INC.
Assigned to JPMORGAN CHASE BANK, N.A., AS SUCCESSOR AGENT reassignment JPMORGAN CHASE BANK, N.A., AS SUCCESSOR AGENT NOTICE OF SUCCESSION OF AGENCY Assignors: BANK OF AMERICA, N.A., AS PRIOR AGENT
Assigned to JPMORGAN CHASE BANK, N.A. reassignment JPMORGAN CHASE BANK, N.A. SECURITY INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: ARCSIGHT, LLC, ATTACHMATE CORPORATION, BORLAND SOFTWARE CORPORATION, ENTIT SOFTWARE LLC, MICRO FOCUS (US), INC., MICRO FOCUS SOFTWARE, INC., NETIQ CORPORATION, SERENA SOFTWARE, INC.
Publication of US9843490B2 publication Critical patent/US9843490B2/en
Application granted granted Critical
Assigned to JPMORGAN CHASE BANK, N.A., AS SUCCESSOR AGENT reassignment JPMORGAN CHASE BANK, N.A., AS SUCCESSOR AGENT CORRECTIVE ASSIGNMENT TO CORRECT THE TO CORRECT TYPO IN APPLICATION NUMBER 10708121 WHICH SHOULD BE 10708021 PREVIOUSLY RECORDED ON REEL 042388 FRAME 0386. ASSIGNOR(S) HEREBY CONFIRMS THE NOTICE OF SUCCESSION OF AGENCY. Assignors: BANK OF AMERICA, N.A., AS PRIOR AGENT
Assigned to NETIQ CORPORATION, MICRO FOCUS (US), INC., MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.), ATTACHMATE CORPORATION, BORLAND SOFTWARE CORPORATION reassignment NETIQ CORPORATION RELEASE OF SECURITY INTEREST REEL/FRAME 035656/0251 Assignors: JPMORGAN CHASE BANK, N.A.
Assigned to SERENA SOFTWARE, INC, NETIQ CORPORATION, MICRO FOCUS (US), INC., ATTACHMATE CORPORATION, MICRO FOCUS LLC (F/K/A ENTIT SOFTWARE LLC), MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.), BORLAND SOFTWARE CORPORATION reassignment SERENA SOFTWARE, INC RELEASE OF SECURITY INTEREST REEL/FRAME 044183/0718 Assignors: JPMORGAN CHASE BANK, N.A.
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • G06F17/3089

Definitions

  • HTML Hypertext Markup Language
  • REST REpresentational State Transfer
  • Various embodiments of the invention provide techniques for injecting analytics into network requests.
  • a method for analytic injection is presented.
  • web pages that are requested by a principal are intercepted.
  • analytic logic is selectively inserted into the web pages for capturing metrics related to access and use of the web pages by the principal.
  • the metrics that are sent to an analytic server are controlled by the analytic logic when the web pages are accessed by the principal.
  • FIG. 1A is a diagram of a technique for inserting analytic logic into web requests, according to an example embodiment presented herein.
  • FIG. 1B is a diagram of a method for analytic injection using the technique presented in the FIG. 1A , according to an example embodiment presented herein.
  • FIG. 2A is a diagram of a technique for inserting analytics into web requests by substituting the web requests, according to an example embodiment presented herein.
  • FIG. 2B is a diagram of a method for analytic injection using the technique presented in the FIG. 2A , according to an example embodiment presented herein.
  • FIG. 3 is a diagram of analytic injection system, according to an example embodiment.
  • a “resource” includes a user, service, system, device, directory, data store, groups of users, combinations and/or collections of these things, etc.
  • a “principal” is a specific type of resource, such as an automated service or user that at one time or another is an actor on another principal or another type of resource.
  • a designation as to what is a resource and what is a principal can change depending upon the context of any given network transaction. Thus, if one resource attempts to access another resource, the actor of the transaction may be viewed as a principal Resources can acquire and be associated with unique identities to identify unique resources during network transactions.
  • An “identity” is something that is formulated from one or more identifiers and secrets that provide a statement of roles and/or permissions that the identity has in relation to resources.
  • An “identifier” is information, which may be private and permits an identity to be formed, and some portions of an identifier may be public information, such as a user identifier, name, etc. Some examples of identifiers include social security number (SSN), user identifier and password pair, account number, retina scan, fingerprint, face scan, etc.
  • SSN social security number
  • password password
  • a “processing environment” defines a set of cooperating computing resources, such as machines (processor and memory-enabled devices), storage, software libraries, software systems, etc. that form a logical computing infrastructure.
  • a “logical computing infrastructure” means that computing resources can be geographically distributed across a network, such as the Internet. So, one computing resource at network site X and be logically combined with another computing resource at network site Y to form a logical processing environment.
  • processing environment computing environment
  • cloud processing environment computing environment
  • cloud computing environment
  • a “cloud” refers to a logical and/or physical processing environment as discussed above.
  • the techniques presented herein are implemented in machines, such as processor or processor-enabled devices (hardware processors). These machines are configured and programmed to specifically perform the processing of the methods and systems presented herein. Moreover, the methods and systems are implemented and reside within a non-transitory computer-readable storage media or machine-readable storage medium and are processed on the machines configured to perform the methods.
  • FIG. 1A is a diagram of a technique for inserting analytic logic into web requests, according to an example embodiment presented herein.
  • the technique is implemented and programmed as executable instructions within memory and/or a non-transitory computer-readable storage medium for execution on one or more processors of a device.
  • the browser of a user requests a web page that is protected by a proxy.
  • the proxy allows the request to flow through to the web service page.
  • the web server returns an HTML page back to the proxy.
  • policy is used to inject a script into the HTML page, such as a JavaScript.
  • the modified page is sent to the browser and the browser displays that HTML.
  • the browser runs the injected script, which is designed to send one or more analytic packets to an analytic server.
  • the processing reflected by he FIG. 1A dynamically inserts an HTML block of code (software instructions), such as a JavaScript, an HTML link, or a cookie, into web pages as they are requested via a proxy.
  • HTML block of code software instructions
  • This provides value in two ways: 1) this is an automatic policy based process that does not require the rewriting any of the web pages or modifications made to any existing web pages of an enterprise on a static per page bases; and 2) the injection can be done dynamic at runtime and is not statically done at page creation time; dynamic rewriting at runtime. So, the approach allows an administrator to control how many and what kind of events are sent to an analytic server (such as a Google Analytic Server).
  • an analytic server such as a Google Analytic Server
  • event tracking can be enabled or disabled for specific users, roles, or other identity-based data.
  • the proxy can “rewrite” the Uniform Resource Locator (URL), and URL is where information is obtained by the injected script, the proxy can control the data that is sent to the analytics server.
  • This data can be any additional information set by the proxy at “page read time.” This allows an administrator to now have user data, such as identity data, show up and be used as part of the analytic reports. This also adds a substantial enterprise value to the administrator by allowing him/her to not only see how many people used the enterprise site but also know what groups the people are in, or any other user data to the enterprise.
  • FIG. 1B is a diagram of a method 100 for analytic injection using the technique presented in the FIG. 1A , according to an example embodiment presented herein.
  • the method 100 (herein after referred to as “analytic code injector”) is implemented, programmed, and resides within memory and/or a non-transitory machine-readable storage medium that executes on one or more processors of a device and is operational over a network.
  • the network may be wired, wireless, or a combination of wired and wireless,
  • the analytic code injector intercepts web pages requested by a principal.
  • the interception can occur via browser interactions.
  • the browser can be associated with any device, including mobile devices, such as phones, tablets, laptops, wearable devices, and the like.
  • the analytic code injector selectively inserts analytic logic into the web pages for capturing metrics related to accessing and using of the web pages by the principal.
  • the analytic code injector resolves the analytic logic based on a policy evaluation.
  • the policy used can be based on a variety of dynamically determined factors.
  • the analytic code injector evaluates the policy at least in part based on an identity for the principal.
  • the analytic code injector includes with the analytic logic instructions to capture an identity for the principal, an identity for an owner of the web pages, a calendar date, a time of day, and resources being accessed via the web pages.
  • the analytic code injector inserts the analytic logic as an executable script.
  • the analytic code injector inserts the analytic logic as one of: HTML code, an HTML link, and a cookie.
  • the analytic code injector dynamically inserts the analytical logic as the web pages are accessed by the principal.
  • the analytic code injector controls the metrics sent to an analytical server by the analytical logic when the web pages are accessed by the principal.
  • the analytic code injector resolves the metrics sent based on an identity for the principal.
  • the analytic code injector resolves the metrics sent based on a security role assigned to the principal.
  • the analytic code injector captures at least some of the metrics based on dynamic information gathered for the principal at the time a particular web page is read by the principal.
  • the analytic code injector processes as a reverse proxy for the web site providing the web pages.
  • the analytic code injector processes as a forward proxy for the web site providing the web pages or for clients accessing the web pages.
  • FIG. 2A is a diagram of a technique for inserting analytics into web requests by substituting the web requests, according to an example embodiment presented herein.
  • the technique is implemented and programmed as executable instructions within memory and/or a non-transitory computer-readable storage medium for execution on one or more processors of a device.
  • an application makes a REST call to a REST Application Programming Interface (API) web server, via the proxy.
  • API Application Programming Interface
  • the proxy forwards the request to the REST API.
  • the REST API returns a message (such as JavaScript Object Notation (JSON)).
  • JSON JavaScript Object Notation
  • the policy engine builds an analytical packet (such as a Google analytical packet), which may include simple URL information or detailed identity and security role data.
  • the analytical packet is sent to the analytical server.
  • the message is sent to the application.
  • the approach of the FIG. 2A can be used where it is not possible to inject any script or any other type of code in to the URL-based web page.
  • the techniques herein solve this situation by the proxy making an API call to the analytics server as an URL request and responses flow though the proxy. From the view of the analytic server it just sees an event and records it. The applications making and receiving the REST calls need not have any modification and all still works as normally planned.
  • FIG. 2B is a diagram of a method 200 for analytic injection using the technique presented in the FIG. 2A , according to an example embodiment presented herein.
  • the method 200 (herein after referred to as “interface proxy”) is implemented, programmed, and resides within memory and/or a non-transitory machine-readable storage medium that executes on one or more processors of a device and is operational over a network.
  • the network may be wired, wireless, or a combination of wired and wireless.
  • the interface proxy detects an interface call directed to a web server. This can be achieved as a reverse, forward, or in some cases a transparent proxy.
  • the interface proxy recognizes the interface call as a REST interface call.
  • the interface proxy makes an analytic packet of information based on the interface call and returned information from the web server.
  • the interface proxy sends the interface call to the web server on behalf of a requesting principal that initiated the interface call to ensure the received information is received and processed by the interface proxy.
  • the interface proxy constructs the analytical packet of information based on dynamic evaluation of a policy.
  • the interface proxy resolves at least some of the analytical packet information based on dynamically collected information associated with a principal that initiates the interface call.
  • the interface proxy sends the analytical packet information to an analytic server for tracking and evaluation.
  • the interface proxy passes at least some of the returned information to a requesting application that initiated the interface call.
  • FIG. 3 is a diagram of analytic injection system 300 , according to an example embodiment.
  • the components of the mobile touch analytic injection system 300 are implemented as executable instructions that reside within memory and/or non-transitory computer-readable storage media and those instructions are executed by one or more devices.
  • the components and the devices are operational over a network and the network can be wired, wireless, or a combination of wired and wireless.
  • the analytic injection system 300 implements, inter alia, the features of the FIGS. 1A, 1B, 2A, and 2B .
  • the analytic injection system 300 includes an analytic code injector 301 and an interface manager 302 . Each of these will be discussed in turn.
  • the analytic injection system 300 includes one or more devices having memory configured with the analytic code injector 301 .
  • Example processing associated with the analytic code injector 301 was presented above in detail with reference to the FIGS. 1A and 1B .
  • the analytic code injector 301 is configured to the analytic code injector is configured to dynamically inject analytic logic into web pages accessed by a principal.
  • the analytic injection system 300 also includes one or more device having memory configured with the interface manager 302 .
  • Example processing associated with the interface manager 302 was presented above in detail with reference to the FIGS. 2A and 2B .
  • the interface manager 302 is configured to create an analytic packet based on interface calls made by the principal.
  • the analytic logic and the analytic packet communicate metrics to an analytic server based on access of the principal to the web pages or a web server.
  • the interface calls are REST calls made by the principal to the web server.
  • analytic code injector 301 and the interface manager 302 provide a variety of novel benefits including: 1) allowing analytics to be used without any HTML page modification; 2) allowing analytics to be dynamic and changed at “page viewing time” and not “page creation time;” 3) allowing a “codeless” analytical solution; 4) allowing policy driven analytical control; 5) allowing identity driven analytical control; and 6) allowing integrated analytical tracking across pages, interfaces and web apps, without the current client expectations and restrictions.

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Environmental & Geological Engineering (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Debugging And Monitoring (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

Techniques for inserting analytic logic into network requests are presented. In an embodiment, instructions are dynamically inserted into web pages as the pages are requested. The instructions enable analytics to be captured and/or tracked when the web pages are processed. In another embodiment, web requests are intercepted and processed to include analytic instructions.

Description

BACKGROUND
As the industry increases the use of mobile devices, access to enterprise services is occurring via platforms and devices not previously anticipated. This presents challenges with respect to data delivery and presentation because of the existing web pages deployed by the enterprise may not optimally permit viewing of information from the enterprise via small mobile screens. Additionally, enterprises want to monitor who is using their web services, what devices they are using, and how they are accessing those web services. One way to do this is to capture and track analytics for the enterprise services when the users access the services over the Internet.
In fact, being able to follow what users are doing with an enterprise's web services has always been an issue. There are a few vendors who have attempted to solve this by offering an analytical view of the web traffic to an enterprise system. Two industry leaders in this area are Google Analytics and OMNITURE (online marketing and web analytics). To gain the full advantage of these tools, the user needs to add small pieces of code to his/her web pages that report events to a remote analytical server. One of the problems with this is approach is that every page that an administrator wants to get analytical information for must be modified. This is a real problem and is a time consuming task to do even once for static pages, but is a much larger effort if the web pages need to be dynamic. Moreover, because a JavaScript is inserted at the time a Hypertext Markup Language (HTML) page is created, the script cannot be based on identity and/or other runtime acquired information. The other problem is that it is not always possible to insert a JavaScript into all types of Hypertext Transfer Protocol (HTTP) calls, REpresentational State Transfer (REST) calls are a significant example of this latter situation.
SUMMARY
Various embodiments of the invention provide techniques for injecting analytics into network requests. In an embodiment, a method for analytic injection is presented.
Specifically, web pages that are requested by a principal are intercepted. Next, analytic logic is selectively inserted into the web pages for capturing metrics related to access and use of the web pages by the principal. Finally, the metrics that are sent to an analytic server are controlled by the analytic logic when the web pages are accessed by the principal.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1A is a diagram of a technique for inserting analytic logic into web requests, according to an example embodiment presented herein.
FIG. 1B is a diagram of a method for analytic injection using the technique presented in the FIG. 1A, according to an example embodiment presented herein.
FIG. 2A is a diagram of a technique for inserting analytics into web requests by substituting the web requests, according to an example embodiment presented herein.
FIG. 2B is a diagram of a method for analytic injection using the technique presented in the FIG. 2A, according to an example embodiment presented herein.
FIG. 3 is a diagram of analytic injection system, according to an example embodiment.
DETAILED DESCRIPTION
A “resource” includes a user, service, system, device, directory, data store, groups of users, combinations and/or collections of these things, etc. A “principal” is a specific type of resource, such as an automated service or user that at one time or another is an actor on another principal or another type of resource. A designation as to what is a resource and what is a principal can change depending upon the context of any given network transaction. Thus, if one resource attempts to access another resource, the actor of the transaction may be viewed as a principal Resources can acquire and be associated with unique identities to identify unique resources during network transactions.
An “identity” is something that is formulated from one or more identifiers and secrets that provide a statement of roles and/or permissions that the identity has in relation to resources. An “identifier” is information, which may be private and permits an identity to be formed, and some portions of an identifier may be public information, such as a user identifier, name, etc. Some examples of identifiers include social security number (SSN), user identifier and password pair, account number, retina scan, fingerprint, face scan, etc.
A “processing environment” defines a set of cooperating computing resources, such as machines (processor and memory-enabled devices), storage, software libraries, software systems, etc. that form a logical computing infrastructure. A “logical computing infrastructure” means that computing resources can be geographically distributed across a network, such as the Internet. So, one computing resource at network site X and be logically combined with another computing resource at network site Y to form a logical processing environment.
The phrases “processing environment,” “cloud processing environment,” and the term “cloud” may be used interchangeably and synonymously herein.
Moreover, it is noted that a “cloud” refers to a logical and/or physical processing environment as discussed above.
Various embodiments of this invention can be implemented in existing network architectures.
Also, the techniques presented herein are implemented in machines, such as processor or processor-enabled devices (hardware processors). These machines are configured and programmed to specifically perform the processing of the methods and systems presented herein. Moreover, the methods and systems are implemented and reside within a non-transitory computer-readable storage media or machine-readable storage medium and are processed on the machines configured to perform the methods.
Of course, the embodiments of the invention can be implemented in a variety of architectural platforms, devices, operating and server systems, and/or applications. Any particular architectural layout or implementation presented herein is provided for purposes of illustration and comprehension only and is not intended to limit aspects of the invention.
It is within this context that embodiments of the invention are now discussed within the context of the FIGS. 1-3.
FIG. 1A is a diagram of a technique for inserting analytic logic into web requests, according to an example embodiment presented herein. The technique is implemented and programmed as executable instructions within memory and/or a non-transitory computer-readable storage medium for execution on one or more processors of a device.
Referencing the FIG. 1A, at A, the browser of a user requests a web page that is protected by a proxy. At B, the proxy allows the request to flow through to the web service page. At C, the web server returns an HTML page back to the proxy. At D, policy is used to inject a script into the HTML page, such as a JavaScript. At E, the modified page is sent to the browser and the browser displays that HTML. At F, the browser runs the injected script, which is designed to send one or more analytic packets to an analytic server.
The processing reflected by he FIG. 1A dynamically inserts an HTML block of code (software instructions), such as a JavaScript, an HTML link, or a cookie, into web pages as they are requested via a proxy. This provides value in two ways: 1) this is an automatic policy based process that does not require the rewriting any of the web pages or modifications made to any existing web pages of an enterprise on a static per page bases; and 2) the injection can be done dynamic at runtime and is not statically done at page creation time; dynamic rewriting at runtime. So, the approach allows an administrator to control how many and what kind of events are sent to an analytic server (such as a Google Analytic Server). This can be a cost saving, limiting the number of events that have to be captured and communicated and can also be used to improve security by only sending events on known groups or users. Because the events are dynamically injected by the proxy, event tracking can be enabled or disabled for specific users, roles, or other identity-based data. Moreover, because the proxy can “rewrite” the Uniform Resource Locator (URL), and URL is where information is obtained by the injected script, the proxy can control the data that is sent to the analytics server. This data can be any additional information set by the proxy at “page read time.” This allows an administrator to now have user data, such as identity data, show up and be used as part of the analytic reports. This also adds a substantial enterprise value to the administrator by allowing him/her to not only see how many people used the enterprise site but also know what groups the people are in, or any other user data to the enterprise.
FIG. 1B is a diagram of a method 100 for analytic injection using the technique presented in the FIG. 1A, according to an example embodiment presented herein. The method 100 (herein after referred to as “analytic code injector”) is implemented, programmed, and resides within memory and/or a non-transitory machine-readable storage medium that executes on one or more processors of a device and is operational over a network. The network may be wired, wireless, or a combination of wired and wireless,
At 110, the analytic code injector intercepts web pages requested by a principal. The interception can occur via browser interactions. The browser can be associated with any device, including mobile devices, such as phones, tablets, laptops, wearable devices, and the like.
At 120, the analytic code injector selectively inserts analytic logic into the web pages for capturing metrics related to accessing and using of the web pages by the principal.
According to an embodiment, at 121, the analytic code injector resolves the analytic logic based on a policy evaluation. The policy used can be based on a variety of dynamically determined factors.
As one example, at 122, the analytic code injector evaluates the policy at least in part based on an identity for the principal.
In an embodiment, at 123, the analytic code injector includes with the analytic logic instructions to capture an identity for the principal, an identity for an owner of the web pages, a calendar date, a time of day, and resources being accessed via the web pages.
In another case, at 124, the analytic code injector inserts the analytic logic as an executable script.
In yet another situation, at 125, the analytic code injector inserts the analytic logic as one of: HTML code, an HTML link, and a cookie.
In an embodiment, at 126, the analytic code injector dynamically inserts the analytical logic as the web pages are accessed by the principal.
At 130, the analytic code injector controls the metrics sent to an analytical server by the analytical logic when the web pages are accessed by the principal.
According to an embodiment, at 131, the analytic code injector resolves the metrics sent based on an identity for the principal.
In another case, at 132, the analytic code injector resolves the metrics sent based on a security role assigned to the principal.
In still another situation, at 133, the analytic code injector captures at least some of the metrics based on dynamic information gathered for the principal at the time a particular web page is read by the principal.
According to an embodiment, at 140, the analytic code injector processes as a reverse proxy for the web site providing the web pages.
In another case, at 150, the analytic code injector processes as a forward proxy for the web site providing the web pages or for clients accessing the web pages.
FIG. 2A is a diagram of a technique for inserting analytics into web requests by substituting the web requests, according to an example embodiment presented herein. The technique is implemented and programmed as executable instructions within memory and/or a non-transitory computer-readable storage medium for execution on one or more processors of a device.
Referencing the FIG. 2A, at A, an application makes a REST call to a REST Application Programming Interface (API) web server, via the proxy. (It is noted that REST is not required but shown for purposes of illustration; other protocols/interfaces such as Simple Object Access Protocol (SOAP) can be used as well.) At B, the proxy forwards the request to the REST API. At C, the REST API returns a message (such as JavaScript Object Notation (JSON)). At D, the policy engine builds an analytical packet (such as a Google analytical packet), which may include simple URL information or detailed identity and security role data. At E, the analytical packet is sent to the analytical server. Finally, at F, the message is sent to the application.
The approach of the FIG. 2A can be used where it is not possible to inject any script or any other type of code in to the URL-based web page. This is a common problem if the URL request is a REST call. The techniques herein solve this situation by the proxy making an API call to the analytics server as an URL request and responses flow though the proxy. From the view of the analytic server it just sees an event and records it. The applications making and receiving the REST calls need not have any modification and all still works as normally planned.
FIG. 2B is a diagram of a method 200 for analytic injection using the technique presented in the FIG. 2A, according to an example embodiment presented herein. The method 200 (herein after referred to as “interface proxy”) is implemented, programmed, and resides within memory and/or a non-transitory machine-readable storage medium that executes on one or more processors of a device and is operational over a network. The network may be wired, wireless, or a combination of wired and wireless.
At 210, the interface proxy detects an interface call directed to a web server. This can be achieved as a reverse, forward, or in some cases a transparent proxy.
According to an embodiment, at 211, the interface proxy recognizes the interface call as a REST interface call.
At 220, the interface proxy makes an analytic packet of information based on the interface call and returned information from the web server.
In an embodiment, at 221, the interface proxy sends the interface call to the web server on behalf of a requesting principal that initiated the interface call to ensure the received information is received and processed by the interface proxy.
According to an embodiment, at 222, the interface proxy constructs the analytical packet of information based on dynamic evaluation of a policy.
In yet another case, at 223, the interface proxy resolves at least some of the analytical packet information based on dynamically collected information associated with a principal that initiates the interface call.
At 230, the interface proxy sends the analytical packet information to an analytic server for tracking and evaluation.
According to an embodiment, at 240, the interface proxy passes at least some of the returned information to a requesting application that initiated the interface call.
FIG. 3 is a diagram of analytic injection system 300, according to an example embodiment. The components of the mobile touch analytic injection system 300 are implemented as executable instructions that reside within memory and/or non-transitory computer-readable storage media and those instructions are executed by one or more devices. The components and the devices are operational over a network and the network can be wired, wireless, or a combination of wired and wireless.
According to an embodiment, the analytic injection system 300 implements, inter alia, the features of the FIGS. 1A, 1B, 2A, and 2B.
The analytic injection system 300 includes an analytic code injector 301 and an interface manager 302. Each of these will be discussed in turn.
The analytic injection system 300 includes one or more devices having memory configured with the analytic code injector 301. Example processing associated with the analytic code injector 301 was presented above in detail with reference to the FIGS. 1A and 1B.
The analytic code injector 301 is configured to the analytic code injector is configured to dynamically inject analytic logic into web pages accessed by a principal.
The analytic injection system 300 also includes one or more device having memory configured with the interface manager 302. Example processing associated with the interface manager 302 was presented above in detail with reference to the FIGS. 2A and 2B.
The interface manager 302 is configured to create an analytic packet based on interface calls made by the principal.
The analytic logic and the analytic packet communicate metrics to an analytic server based on access of the principal to the web pages or a web server.
According to an embodiment, the interface calls are REST calls made by the principal to the web server.
It is now appreciated that the analytic code injector 301 and the interface manager 302 provide a variety of novel benefits including: 1) allowing analytics to be used without any HTML page modification; 2) allowing analytics to be dynamic and changed at “page viewing time” and not “page creation time;” 3) allowing a “codeless” analytical solution; 4) allowing policy driven analytical control; 5) allowing identity driven analytical control; and 6) allowing integrated analytical tracking across pages, interfaces and web apps, without the current client expectations and restrictions.
The above description is illustrative, and not restrictive. Many other embodiments will be apparent to those of skill in the art upon reviewing the above description. The scope of embodiments should therefore be determined with reference to the appended claims, along with the full scope of equivalents to which such dams are entitled.

Claims (18)

The invention claimed is:
1. A method implemented and programmed within a non-transitory computer-readable storage medium and processed by a device configured to perform the method, comprising:
intercepting, by the device, web pages requested by a principal;
selectively, via the device, inserting analytic logic as an executable script into links associated with the web pages for capturing metrics related to access and use of the web pages by the principal, wherein inserting further includes inserting data with the executable script into the links where information obtained for executable script processing is acquired by the executable script from the data in the links, and wherein inserting further includes inserting the analytic logic without modification to any of the web pages and the web pages remain unchanged, and wherein inserting further includes inserting identity data as the data for the principal and group data for groups to which the principal belongs; and
controlling, via the device, the metrics sent to an analytic server by the analytic logic when the web pages are accessed by the principal and identifying the metrics with the identity data and the group data, wherein controlling further includes selectively disabling the metrics sent to the analytic server based on specific users, security role data and the identity data.
2. The method of claim 1 further comprising, processing, via the device, the method as a reverse proxy for a web site.
3. The method of claim 1 further comprising, processing, via the device, a forward proxy.
4. The method of claim 1, wherein selectively inserting further includes resolving the analytic logic based on a policy evaluation.
5. The method of claim 4, wherein resolving further includes evaluating the policy at least in part based on an identity for the principal.
6. The method of claim 1, wherein selectively inserting further includes including with the analytic logic instructions to capture an identity for the principal, an identity for an owner of the web pages, a calendar date, a time of day, and resources being accessed via the web pages.
7. The method of claim 1, wherein selectively inserting further includes dynamically inserting the analytic logic as the web pages are accessed by the principal.
8. The method of claim 1, wherein controlling further includes resolving the metrics sent based on an identity for the principal.
9. The method of claim 1, wherein controlling further includes resolving the metrics sent based on a security role assigned to the principal.
10. The method of claim 1, wherein controlling further includes capturing at least some of the metrics based on dynamic information gathered for the principal at the time a particular web page is read by the principal.
11. A method implemented and programmed within a non-transitory computer-readable storage medium and processed by a device configured to perform the method, comprising:
detecting, at the device, an interface call directed to a web server when the interface call is incapable of being modified, wherein detecting further includes identifying the interface call as being sent by a requesting principal;
making, at the device, an analytic packet of information based on the interface call and returned information from the web server, wherein making further includes building the analytic packet with identity and security role data and wherein making further includes obtaining the identity and security role data from the interface call and the identity and security role data for the requesting principal; and
sending, from the device, the analytic packet of information to an analytic server for tracking and evaluation, wherein sending further includes selectively preventing the analytic packet from being sent to the analytic server based on specific users, the identity and security role data.
12. The method of claim 11, further comprising, passing at least some of the returned information to a requesting application that initiated the interface call.
13. The method of claim 11, wherein detecting further includes recognizing the interface call as a REpresentational State Transfer (REST) interface call.
14. The method of claim 11, wherein making further includes sending the interface call to the web server on behalf of the requesting principal that initiated the interface call to ensure the received information is received.
15. The method of claim 11, wherein making further includes constructing the analytical packet of information based on dynamic evaluation of a policy.
16. The method of claim 11, wherein making further includes resolving at least some of the analytical packet of information based on dynamically collected information associated with the requesting principal that initiates the interface call.
17. A system, comprising:
a memory configured with an analytic code injector that processes on one or more processors of a device;
the memory configured with an interface manager that processes on the one or more processors of the device wherein the analytic code injector is configured to dynamically inject analytic logic into web pages accessed by a principal, the interface manager is configured to create an analytic packet based on interface calls made by the principal when the interface calls are incapable of being modified and the web pages remain unchanged, and the analytic packet built with security and role data for the principal and obtained from the interface call, and wherein the analytic logic and the analytic packet communicate metrics to an analytic server based on access of the principal to the web pages or a web server, and wherein the metrics are selectively not communicated to the analytic server based on specific users, identity data, and the security and role data.
18. The system of claim 17, wherein the interface calls are REpresentational State Transfer (REST) calls made by the principal to the web server.
US13/803,365 2013-03-14 2013-03-14 Methods and systems for analytic code injection Active 2033-11-19 US9843490B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US13/803,365 US9843490B2 (en) 2013-03-14 2013-03-14 Methods and systems for analytic code injection

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/803,365 US9843490B2 (en) 2013-03-14 2013-03-14 Methods and systems for analytic code injection

Publications (2)

Publication Number Publication Date
US20140280867A1 US20140280867A1 (en) 2014-09-18
US9843490B2 true US9843490B2 (en) 2017-12-12

Family

ID=51533644

Family Applications (1)

Application Number Title Priority Date Filing Date
US13/803,365 Active 2033-11-19 US9843490B2 (en) 2013-03-14 2013-03-14 Methods and systems for analytic code injection

Country Status (1)

Country Link
US (1) US9843490B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11593829B1 (en) * 2021-12-27 2023-02-28 Paypal, Inc. Proxy objects for tracking processing of electronic coupon codes

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160344838A1 (en) * 2015-05-21 2016-11-24 Fastly, Inc. Caching of tracking elements in network content
WO2016189465A1 (en) * 2015-05-25 2016-12-01 Chameleonx Ltd. 3rd party request-blocking bypass layer
CN105260421A (en) * 2015-09-28 2016-01-20 北京奇虎科技有限公司 Webpage loading method and apparatus
CN107357897A (en) * 2017-07-13 2017-11-17 郑州云海信息技术有限公司 A kind of method, apparatus and computer-readable storage medium for realizing user access control
US11962666B2 (en) * 2020-02-18 2024-04-16 Cisco Technology, Inc. User-configurable end user monitoring (EUM)
US12032647B2 (en) * 2022-06-13 2024-07-09 Microsoft Technology Licensing, Llc Tenant network for rewriting of code included in a web page

Citations (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070244650A1 (en) * 2006-04-03 2007-10-18 Francois Gauthier Service-oriented architecture for deploying, sharing, and using analytics
US20080209451A1 (en) * 2007-01-29 2008-08-28 Mashery, Inc. Methods for analyzing, limiting, and enhancing access to an internet API, web service, and data
US20080275980A1 (en) * 2007-05-04 2008-11-06 Hansen Eric J Method and system for testing variations of website content
US20100023380A1 (en) 2008-06-30 2010-01-28 Duff Anderson Method and apparatus for performing web analytics
US20100318976A1 (en) 2009-06-11 2010-12-16 Webtrends, Inc. Method and system for constructing a customized web analytics application
US20110022704A1 (en) * 2009-06-30 2011-01-27 International Business Machines Corporation Method and system for collecting information on a user visit
US20110041171A1 (en) * 2009-08-11 2011-02-17 Lloyd Leon Burch Techniques for virtual representational state transfer (rest) interfaces
US20110119100A1 (en) * 2009-10-20 2011-05-19 Jan Matthias Ruhl Method and System for Displaying Anomalies in Time Series Data
US20120005257A1 (en) 2010-06-30 2012-01-05 General Electric Company System and method for generating web analytic reports
US20120030276A1 (en) 2010-07-30 2012-02-02 General Electric Company System and method for generating web analytic reports
US8234370B2 (en) 2009-06-30 2012-07-31 International Business Machines Corporation Determining web analytics information
US8307101B1 (en) 2007-12-13 2012-11-06 Google Inc. Generic format for storage and query of web analytics data
US20130060915A1 (en) 2010-08-26 2013-03-07 Adobe Systems Incorporated Aggregated web analytics request systems and methods
US20130132558A1 (en) * 2011-11-18 2013-05-23 The Boeing Company Server-Side Web Analytics System and Method
US20130198376A1 (en) * 2012-01-27 2013-08-01 Compete, Inc. Hybrid internet traffic measurement using site-centric and panel data
US20140006482A1 (en) * 2012-07-02 2014-01-02 Vmware, Inc. Method and system for providing inter-cloud services
US20140067520A1 (en) * 2012-08-28 2014-03-06 SmartBridge, LLC Methods, Systems and Apparatuses for Analyzing and Comparing Performance of Marketing Channels in Integrated Marketing Campaigns
US20140215050A1 (en) * 2013-01-29 2014-07-31 Array Networks, Inc. Method and system for web analytics using a proxy

Patent Citations (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070244650A1 (en) * 2006-04-03 2007-10-18 Francois Gauthier Service-oriented architecture for deploying, sharing, and using analytics
US20080209451A1 (en) * 2007-01-29 2008-08-28 Mashery, Inc. Methods for analyzing, limiting, and enhancing access to an internet API, web service, and data
US20080275980A1 (en) * 2007-05-04 2008-11-06 Hansen Eric J Method and system for testing variations of website content
US8307101B1 (en) 2007-12-13 2012-11-06 Google Inc. Generic format for storage and query of web analytics data
US20100023380A1 (en) 2008-06-30 2010-01-28 Duff Anderson Method and apparatus for performing web analytics
US20100318976A1 (en) 2009-06-11 2010-12-16 Webtrends, Inc. Method and system for constructing a customized web analytics application
US8234370B2 (en) 2009-06-30 2012-07-31 International Business Machines Corporation Determining web analytics information
US20110022704A1 (en) * 2009-06-30 2011-01-27 International Business Machines Corporation Method and system for collecting information on a user visit
US20110041171A1 (en) * 2009-08-11 2011-02-17 Lloyd Leon Burch Techniques for virtual representational state transfer (rest) interfaces
US20110119100A1 (en) * 2009-10-20 2011-05-19 Jan Matthias Ruhl Method and System for Displaying Anomalies in Time Series Data
US20120005257A1 (en) 2010-06-30 2012-01-05 General Electric Company System and method for generating web analytic reports
US20120030276A1 (en) 2010-07-30 2012-02-02 General Electric Company System and method for generating web analytic reports
US20130060915A1 (en) 2010-08-26 2013-03-07 Adobe Systems Incorporated Aggregated web analytics request systems and methods
US20130132558A1 (en) * 2011-11-18 2013-05-23 The Boeing Company Server-Side Web Analytics System and Method
US20130198376A1 (en) * 2012-01-27 2013-08-01 Compete, Inc. Hybrid internet traffic measurement using site-centric and panel data
US20140006482A1 (en) * 2012-07-02 2014-01-02 Vmware, Inc. Method and system for providing inter-cloud services
US20140067520A1 (en) * 2012-08-28 2014-03-06 SmartBridge, LLC Methods, Systems and Apparatuses for Analyzing and Comparing Performance of Marketing Channels in Integrated Marketing Campaigns
US20140215050A1 (en) * 2013-01-29 2014-07-31 Array Networks, Inc. Method and system for web analytics using a proxy

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
‘Piwik JavaScript tracking’. From Wayback Machine Internet Archive [online]. Jan. 2, 2012 [retrieved on Jun. 2, 2016]. Retrieved from the Internet: <URL:https://web.archive.org/web/20120102224354/http://piwik.org/docs/javascript-tracking/>. *
‘Piwik: A Tour of Piwik’. From Wayback Machine Internet Archive [online]. Jan. 15, 2013 [retrieved on Jun. 2, 2016]. Retrieved from the Internet: <URL:https://web.archive.org/web/20130115142940/http://piwik.org/docs/piwik-tour/>. *
'Piwik JavaScript tracking'. From Wayback Machine Internet Archive [online]. Jan. 2, 2012 [retrieved on Jun. 2, 2016]. Retrieved from the Internet: <URL:https://web.archive.org/web/20120102224354/http://piwik.org/docs/javascript-tracking/>. *
'Piwik: A Tour of Piwik'. From Wayback Machine Internet Archive [online]. Jan. 15, 2013 [retrieved on Jun. 2, 2016]. Retrieved from the Internet: <URL:https://web.archive.org/web/20130115142940/http://piwik.org/docs/piwik-tour/>. *
Verma, Vishal. ‘New Google Analytics code into external file’. From Stackoverflow.com [online]. Oct. 29, 2012 at 13:58 [retrieved on Nov. 12, 2015]. Retrieved from the Internet: <URL:http://stackoverflow.com/questions/3870345/newgoogleanalyticscodeintoexternalfile>. *
Verma, Vishal. 'New Google Analytics code into external file'. From Stackoverflow.com [online]. Oct. 29, 2012 at 13:58 [retrieved on Nov. 12, 2015]. Retrieved from the Internet: <URL:http://stackoverflow.com/questions/3870345/newgoogleanalyticscodeintoexternalfile>. *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11593829B1 (en) * 2021-12-27 2023-02-28 Paypal, Inc. Proxy objects for tracking processing of electronic coupon codes

Also Published As

Publication number Publication date
US20140280867A1 (en) 2014-09-18

Similar Documents

Publication Publication Date Title
US9843490B2 (en) Methods and systems for analytic code injection
US11070557B2 (en) Delayed serving of protected content
US20230370464A1 (en) Systems and methods for controlling sign-on to web applications
US10574698B1 (en) Configuration and deployment of decoy content over a network
US20230281607A1 (en) Method and system for mobile cryptocurrency wallet connectivity
US20160330237A1 (en) System and Method for Blocking Internet Data Brokers and Networks
US9060031B1 (en) Anonymized personalization of network content
US9923929B2 (en) Systems and methods for in-session refresh of entitlements associated with web applications
WO2018129069A1 (en) De-anonymization of website visitor identity
US20140115715A1 (en) System and method for controlling, obfuscating and anonymizing data and services when using provider services
US20150007283A1 (en) Delegating authentication for a web service
US10375064B2 (en) Method, apparatus, and system for remotely accessing cloud applications
US20200153798A1 (en) Centralized access to data repository from a multi-cloud computing environment
US11514151B2 (en) Multidevice user authentication in group-based communication systems
CN111988295A (en) Database auditing method and device, WEB server, database auditing system and storage medium
US20180205705A1 (en) Network request proxy system and method
US11151239B2 (en) Single sign-on management for multiple independent identity providers
US20230015670A1 (en) Distributed system for autonomous discovery and exploitation of an organization&#39;s computing and/or human resources to evaluate capacity and/or ability to detect, respond to, and mitigate effectiveness of intrusion attempts by, and reconnaissance efforts of, motivated, antagonistic, third parties
US11882159B2 (en) Executing code injected into an intercepted application response message to eliminate accumulation of stale computing sessions
CN112836186A (en) Page control method and device
US11848960B2 (en) Content delivery network (CDN)-based bot detection service with stop and reset protocols
US11368483B1 (en) Low touch integration of a bot detection service in association with a content delivery network
US20150213137A1 (en) Systems and methods for providing a social network enhancement to a website
Mobius et al. The Case For a WYSIWYG Mobile Browsing Panel
CN117909611A (en) Page embedding method, device, equipment, medium, program product and credit system

Legal Events

Date Code Title Description
AS Assignment

Owner name: NOVELL, INC., UTAH

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BURCH, LLOYD LEON;BUSS, DUANE FREDRICK;REEL/FRAME:029997/0374

Effective date: 20130313

AS Assignment

Owner name: CREDIT SUISSE AG, AS COLLATERAL AGENT, NEW YORK

Free format text: GRANT OF PATENT SECURITY INTEREST (SECOND LIEN);ASSIGNOR:NOVELL, INC.;REEL/FRAME:030323/0411

Effective date: 20130430

Owner name: CREDIT SUISSE AG, AS COLLATERAL AGENT, NEW YORK

Free format text: GRANT OF PATENT SECURITY INTEREST (FIRST LIEN);ASSIGNOR:NOVELL, INC.;REEL/FRAME:030323/0401

Effective date: 20130430

AS Assignment

Owner name: NETIQ CORPORATION, UTAH

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:NOVELL, INC.;REEL/FRAME:033553/0379

Effective date: 20140808

AS Assignment

Owner name: NOVELL, INC., UTAH

Free format text: RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME 030323/0401;ASSIGNOR:CREDIT SUISSE AG;REEL/FRAME:034446/0343

Effective date: 20141120

Owner name: NOVELL, INC., UTAH

Free format text: RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME 030323/0411;ASSIGNOR:CREDIT SUISSE AG;REEL/FRAME:034446/0384

Effective date: 20141120

AS Assignment

Owner name: BANK OF AMERICA, N.A., CALIFORNIA

Free format text: SECURITY INTEREST;ASSIGNORS:MICRO FOCUS (US), INC.;BORLAND SOFTWARE CORPORATION;ATTACHMATE CORPORATION;AND OTHERS;REEL/FRAME:035656/0251

Effective date: 20141120

AS Assignment

Owner name: JPMORGAN CHASE BANK, N.A., AS SUCCESSOR AGENT, NEW

Free format text: NOTICE OF SUCCESSION OF AGENCY;ASSIGNOR:BANK OF AMERICA, N.A., AS PRIOR AGENT;REEL/FRAME:042388/0386

Effective date: 20170501

AS Assignment

Owner name: JPMORGAN CHASE BANK, N.A., DELAWARE

Free format text: SECURITY INTEREST;ASSIGNORS:ATTACHMATE CORPORATION;BORLAND SOFTWARE CORPORATION;NETIQ CORPORATION;AND OTHERS;REEL/FRAME:044183/0718

Effective date: 20170901

STCF Information on status: patent grant

Free format text: PATENTED CASE

AS Assignment

Owner name: JPMORGAN CHASE BANK, N.A., AS SUCCESSOR AGENT, NEW

Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE TO CORRECT TYPO IN APPLICATION NUMBER 10708121 WHICH SHOULD BE 10708021 PREVIOUSLY RECORDED ON REEL 042388 FRAME 0386. ASSIGNOR(S) HEREBY CONFIRMS THE NOTICE OF SUCCESSION OF AGENCY;ASSIGNOR:BANK OF AMERICA, N.A., AS PRIOR AGENT;REEL/FRAME:048793/0832

Effective date: 20170501

FEPP Fee payment procedure

Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

FEPP Fee payment procedure

Free format text: SURCHARGE FOR LATE PAYMENT, LARGE ENTITY (ORIGINAL EVENT CODE: M1554); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 4

AS Assignment

Owner name: NETIQ CORPORATION, WASHINGTON

Free format text: RELEASE OF SECURITY INTEREST REEL/FRAME 044183/0718;ASSIGNOR:JPMORGAN CHASE BANK, N.A.;REEL/FRAME:062746/0399

Effective date: 20230131

Owner name: MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.), WASHINGTON

Free format text: RELEASE OF SECURITY INTEREST REEL/FRAME 044183/0718;ASSIGNOR:JPMORGAN CHASE BANK, N.A.;REEL/FRAME:062746/0399

Effective date: 20230131

Owner name: ATTACHMATE CORPORATION, WASHINGTON

Free format text: RELEASE OF SECURITY INTEREST REEL/FRAME 044183/0718;ASSIGNOR:JPMORGAN CHASE BANK, N.A.;REEL/FRAME:062746/0399

Effective date: 20230131

Owner name: SERENA SOFTWARE, INC, CALIFORNIA

Free format text: RELEASE OF SECURITY INTEREST REEL/FRAME 044183/0718;ASSIGNOR:JPMORGAN CHASE BANK, N.A.;REEL/FRAME:062746/0399

Effective date: 20230131

Owner name: MICRO FOCUS (US), INC., MARYLAND

Free format text: RELEASE OF SECURITY INTEREST REEL/FRAME 044183/0718;ASSIGNOR:JPMORGAN CHASE BANK, N.A.;REEL/FRAME:062746/0399

Effective date: 20230131

Owner name: BORLAND SOFTWARE CORPORATION, MARYLAND

Free format text: RELEASE OF SECURITY INTEREST REEL/FRAME 044183/0718;ASSIGNOR:JPMORGAN CHASE BANK, N.A.;REEL/FRAME:062746/0399

Effective date: 20230131

Owner name: MICRO FOCUS LLC (F/K/A ENTIT SOFTWARE LLC), CALIFORNIA

Free format text: RELEASE OF SECURITY INTEREST REEL/FRAME 044183/0718;ASSIGNOR:JPMORGAN CHASE BANK, N.A.;REEL/FRAME:062746/0399

Effective date: 20230131

Owner name: MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.), WASHINGTON

Free format text: RELEASE OF SECURITY INTEREST REEL/FRAME 035656/0251;ASSIGNOR:JPMORGAN CHASE BANK, N.A.;REEL/FRAME:062623/0009

Effective date: 20230131

Owner name: MICRO FOCUS (US), INC., MARYLAND

Free format text: RELEASE OF SECURITY INTEREST REEL/FRAME 035656/0251;ASSIGNOR:JPMORGAN CHASE BANK, N.A.;REEL/FRAME:062623/0009

Effective date: 20230131

Owner name: NETIQ CORPORATION, WASHINGTON

Free format text: RELEASE OF SECURITY INTEREST REEL/FRAME 035656/0251;ASSIGNOR:JPMORGAN CHASE BANK, N.A.;REEL/FRAME:062623/0009

Effective date: 20230131

Owner name: ATTACHMATE CORPORATION, WASHINGTON

Free format text: RELEASE OF SECURITY INTEREST REEL/FRAME 035656/0251;ASSIGNOR:JPMORGAN CHASE BANK, N.A.;REEL/FRAME:062623/0009

Effective date: 20230131

Owner name: BORLAND SOFTWARE CORPORATION, MARYLAND

Free format text: RELEASE OF SECURITY INTEREST REEL/FRAME 035656/0251;ASSIGNOR:JPMORGAN CHASE BANK, N.A.;REEL/FRAME:062623/0009

Effective date: 20230131