DETAILED ACTION
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Information Disclosure Statement
The information disclosure statements (IDSs) were submitted on 04/17/2025, 08/07/2025, 10/14/2025 and 04/29/2026. The submission is in compliance with the provisions of 37 CFR 1.97. Accordingly, the information disclosure statement is being considered by the examiner.
Double Patenting
The nonstatutory double patenting rejection is based on a judicially created doctrine grounded in public policy (a policy reflected in the statute) so as to prevent the unjustified or improper timewise extension of the “right to exclude” granted by a patent and to prevent possible harassment by multiple assignees. A nonstatutory double patenting rejection is appropriate where the conflicting claims are not identical, but at least one examined application claim is not patentably distinct from the reference claim(s) because the examined application claim is either anticipated by, or would have been obvious over, the reference claim(s). See, e.g., In re Berg, 140 F.3d 1428, 46 USPQ2d 1226 (Fed. Cir. 1998); In re Goodman, 11 F.3d 1046, 29 USPQ2d 2010 (Fed. Cir. 1993); In re Longi, 759 F.2d 887, 225 USPQ 645 (Fed. Cir. 1985); In re Van Ornum, 686 F.2d 937, 214 USPQ 761 (CCPA 1982); In re Vogel, 422 F.2d 438, 164 USPQ 619 (CCPA 1970); In re Thorington, 418 F.2d 528, 163 USPQ 644 (CCPA 1969).
A timely filed terminal disclaimer in compliance with 37 CFR 1.321(c) or 1.321(d) may be used to overcome an actual or provisional rejection based on nonstatutory double patenting provided the reference application or patent either is shown to be commonly owned with the examined application, or claims an invention made as a result of activities undertaken within the scope of a joint research agreement. See MPEP § 717.02 for applications subject to examination under the first inventor to file provisions of the AIA as explained in MPEP § 2159. See MPEP § 2146 et seq. for applications not subject to examination under the first inventor to file provisions of the AIA . A terminal disclaimer must be signed in compliance with 37 CFR 1.321(b).
The filing of a terminal disclaimer by itself is not a complete reply to a nonstatutory double patenting (NSDP) rejection. A complete reply requires that the terminal disclaimer be accompanied by a reply requesting reconsideration of the prior Office action. Even where the NSDP rejection is provisional the reply must be complete. See MPEP § 804, subsection I.B.1. For a reply to a non-final Office action, see 37 CFR 1.111(a). For a reply to final Office action, see 37 CFR 1.113(c). A request for reconsideration while not provided for in 37 CFR 1.113(c) may be filed after final for consideration. See MPEP §§ 706.07(e) and 714.13.
The USPTO Internet website contains terminal disclaimer forms which may be used. Please visit www.uspto.gov/patent/patents-forms. The actual filing date of the application in which the form is filed determines what form (e.g., PTO/SB/25, PTO/SB/26, PTO/AIA /25, or PTO/AIA /26) should be used. A web-based eTerminal Disclaimer may be filled out completely online using web-screens. An eTerminal Disclaimer that meets all requirements is auto-processed and approved immediately upon submission. For more information about eTerminal Disclaimers, refer to www.uspto.gov/patents/apply/applying-online/eterminal-disclaimer.
Claims 1, 10-12, 18 are rejected on the ground of nonstatutory double patenting as being unpatentable over claims 1, 2, 6, 9, 11, 20 of U.S. Patent No. 12,309,238. Although the claims at issue are not identical, they are not patentably distinct from each other because claims 1, 10-12, 18 of U.S. Patent No. 12,309,238 teaches on each and every limitation of claims 1, 2, 6, 9, 11, 20 of the Instant Application.
Instant Application
12,309,238
1. A method comprising:
activating a communication channel with an agent installed on a client device;
while the communication channel is active, collecting usage data via the agent, wherein the usage data characterizes usage of a plurality of applications accessed via the client device;
analyzing the usage data to determine respective metrics associated with the plurality of applications;
providing an interactive user interface dashboard configured to display some or all of the determined respective metrics for each of the plurality of applications;
and providing a reclamation request for a license associated with one of the plurality of applications from a plurality of licenses associated with the plurality of applications based on the determined respective metrics.
1. A method comprising:
activating a communication channel with an agent installed on a client;
while the communication channel is active, collecting usage data via the agent, wherein the usage data characterizes usage regarding a plurality of different applications accessed via the client;
analyzing the usage data to determine aggregated numerical metrics respectively associated with the plurality of different applications;
and providing an interactive user interface dashboard providing the determined aggregated numerical metrics categorized separately for each of the plurality of different applications,
2. The method of claim 1, further comprising providing a reclamation request of one or more licenses to one of the plurality of different applications.
1. wherein at least a portion of the plurality of different applications is remotely provided;
and wherein the interactive user interface dashboard includes a geographical graphic including graphical data marker elements representing the aggregated numerical metrics categorized separately for each of the plurality of different applications.
8. The method of claim 1, wherein the usage data comprises one or more of application uptime, a number of crashes, an amount of activity, an amount of resource usage, or an amount of user usage
6. The method of claim 1, wherein the collected usage data includes at least one of the following: a CPU usage, a memory usage, an application version, or a last access time.
10. The method of claim 1, wherein the plurality of applications comprises one or more user device applications and one or more cloud services.
9. The method of claim 1, wherein the plurality of different applications includes a combination of one or more user device applications and one or more cloud services.
11. The method of claim 1, further comprising outputting a notification based on the determined respective metrics to the client device.
1. and providing an interactive user interface dashboard providing the determined aggregated numerical metrics categorized separately for each of the plurality of different applications
12. A system comprising: processing circuitry; and a non-transitory memory, accessible by the processing circuitry and storing instructions that, when executed by the processing circuitry, cause the processing circuitry to perform operations comprising:
activating a communication channel with an agent installed on a client device;
while the communication channel is active, collecting usage data via the agent, wherein the usage data characterizes usage of a plurality of applications accessed via the client device;
analyzing the usage data to determine respective metrics associated with the plurality of applications;
providing an interactive user interface dashboard configured to display the determined respective metrics for each of the plurality of applications;
and providing a reclamation request for a license associated with one of the plurality of applications from a plurality of licenses associated with the plurality of applications.
11. A system comprising:
one or more processors; and
a memory coupled to the one or more processors, wherein the memory is configured to provide the one or more processors with instructions which when executed cause the one or more processors to:
activate a communication channel with an agent installed on a client;
while the communication channel is active, collect usage data via the agent, wherein the usage data characterizes usage regarding a plurality of different applications accessed via the client;
analyze the usage data to determine aggregated numerical metrics respectively associated with the plurality of different applications; and
provide an interactive user interface dashboard providing the determined aggregated numerical metrics categorized separately for each of the plurality of different applications,
2. The method of claim 1, further comprising providing a reclamation request of one or more licenses to one of the plurality of different applications.
11. wherein at least a portion of the plurality of different applications is remotely provided; and
wherein the interactive user interface dashboard includes a geographical graphic including graphical data marker elements representing the aggregated numerical metrics categorized separately for each of the plurality of different applications.
18. A non-transitory, computer readable medium comprising instructions that when executed by processing circuitry, cause the processing circuitry to perform operations comprising:
activating a communication channel with an agent installed on a client device;
while the communication channel is active, collecting usage data via the agent, wherein the usage data characterizes usage of a plurality of applications accessed via the client device;
analyzing the usage data to determine respective metrics associated with the plurality of applications;
providing an interactive user interface dashboard configured to display the determined respective metrics for each of the plurality of applications;
and providing a reclamation request for a license associated with one of the plurality of applications from a plurality of licenses associated with the plurality of applications.
20. A computer program product, the computer program product being embodied in a non-transitory computer readable storage medium and comprising computer instructions for:
activating a communication channel with an agent installed on a client;
while the communication channel is active, collecting usage data via the agent, wherein the usage data characterizes usage regarding a plurality of different applications accessed via the client;
analyzing the usage data to determine aggregated numerical metrics respectively associated with the plurality of different applications; and
providing an interactive user interface dashboard providing the determined aggregated numerical metrics categorized separately for each of the plurality of different applications,
2. The method of claim 1, further comprising providing a reclamation request of one or more licenses to one of the plurality of different applications. wherein at least a portion of the plurality of different applications is remotely provided; and
wherein the interactive user interface dashboard includes a geographical graphic including graphical data marker elements representing the aggregated numerical metrics categorized separately for each of the plurality of different applications.
Claim 9 is rejected on the ground of nonstatutory double patenting as being unpatentable over claim 1 of U.S. Patent No. 12,309,238 in view of US PGPub 2023/0254330 A1 (Singh).
Regarding Claim 9:
U.S. Patent No. 12,309,238 teaches on the invention of Claim 1 of the instant application as described. However, U.S. Patent No. 12,309,238 is silent on Claim 9. Singh teaches on Claim 9, See Singh [0088] [0108][0697]. It would have been obvious to modify U.S. Patent No. 12,309,238 per Singh in order to have a complete interactive dashboard, allowing for configuration of data types are to be collected and at what frequency.
Claims 2-8, 13-17, 19-20 are rejected on the ground of nonstatutory double patenting as being unpatentable over claim 1, 11 of U.S. Patent No. 12,309,238 in view of US Patent 11,695,834 B1 (Aggarwal).
Regarding Claims 2, 5-8, 13, 15-17, 19-20:
U.S. Patent No. 12,309,238 teaches on the inventions of Claims 1, 12, 18 of the instant application as described. However, U.S. Patent No. 12,309,238 is silent on Claims 2, 5-8, 13, 15-17, 19-20. Aggarwal teaches on these claims, see Aggarwal Col 9 ln 35-44, 58-63. It would have been obvious to modify U.S. Patent No. 12,309,238 per Aggarwal as it would allow the modified system to provide visibility into license levels and contract spend, enabling recommendations for rightsizing and renewing licenses.
Claims 3-4, 14 are rejected on the ground of nonstatutory double patenting as being unpatentable over claim 1, 11 of U.S. Patent No. 12,309,238 in view of US 2020/0349239 A1 (Tyagi).
Regarding Claims 3-4, 14:
U.S. Patent No. 12,309,238 teaches on the invention of Claims 1, 12 of the instant application as described. However, U.S. Patent No. 12,309,238 is silent on Claims 3-4, 14. Tyagi teaches on these claims, see Tyagi [0147][0148]. It would have been obvious to modify U.S. Patent No. 12,309,238 per Tyagi as it would allow the combined system to provide detailed visualizations of license usage in a rolling time window, allowing for targeted licensing analysis.
Claim Rejections - 35 USC § 103
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claim(s) 1-2, 5, 7-13, 15-20 is/are rejected under 35 U.S.C. 103 as being unpatentable over US PGPub 2023/0254330 A1 (Singh) in view of US Patent 11,695,834 B1 (Aggarwal).
Regarding Claim 1:
Singh teaches A method comprising:
activating a communication channel (ie. terminal session, ssh session) with an agent installed on a client device (ie. node); ([0373]-[0375] A new process running openssh will be created for every new ssh login session and this process can be used to identify an ssh session on that machine. [0379] Charlie logs in (as user "x") and an ssh privileged process is created to handle Charlie's connection (353). A terminal session is created and a bash process is created (354) as a child of process 353. [0381] software agents (such as agent 112) may run on machines (such as a machine that implements one of nodes 116) and detect new connections, processes, and/or logins.)
while the communication channel is active, collecting usage data via the agent, wherein the usage data characterizes usage of a plurality of applications accessed via the client device; ([0108] An agent installed on node 116 can provide status information to data aggregator 114. Status information may be sent by an agent periodically (e.g., once an hour or once any other predetermined amount of time). [0113] User A deploys an appropriate installer on each of nodes 108. [0115] The agent may monitor for network connections, and then begin collecting information about processes associated with the network connections, using the presence of a network packet associated with a process as a trigger for collecting additional information about the process. [0376]-[0377] tracking user sessions.)
analyzing the usage data to determine respective metrics associated with the plurality of applications; ([0166] Tracking service analyzer 144 may normalize the tracking data as applicable, so that it can be inserted into data store 30 for later querying/analysis. [0168] data platform 12 can automatically discover entities deployed in a given datacenter. The entities may be grouped together logically (into analysis groups) based on behaviors, and temporal behavior baselines can be established. [0182]-[0189] Figs 2F-2M show interactive graphs with respective metrics and associated applications. [0180] FIG. 2E, 421 instances of sshd were executing during the one hour time period of data represented in polygraph 235. As indicated in region 237, nodes within the datacenter communicated with a total of 1349 IP addresses outside of the datacenter.) Fig. 2E is one of the examples of aggregated numerical metrics regarding a particular application.
providing an interactive user interface dashboard (ie. user B interacting with the polygraph) configured to display some or all of the determined respective metrics for each of the plurality of applications; ([0182]-[0189] Figs 2F-2M show interactive graphs with respective metrics and associated applications. [0182] FIG. 2F illustrates an example of an application communication polygraph for a datacenter (e.g., datacenter106) for the one hour period of 9 am-10 am on June 5. The time slice currently being viewed is indicated in region 240. If user B clicks his mouse in region 241, user B will be shown a representation of the application-communication polygraph as generated for the following hour (10 am-11 am on June 5). [0183] FIG. 2G depicts what is shown in user B's browser after he has clicked on region 241, and has further clicked on region 242. [0196] Graph generator 146 may generate graphs of entities (as the nodes in the graph) and activities between entities (as the edges). [0199] A graph may be a summary of all activity that happened in a particular time interval. As each graph corresponds to a distinct period of time, different rows can be aggregated to find summary information over a larger timestamp. [0473] The behavior graph model can be used (e.g., during forensic analysis) to answer questions helpful during an investigation.)
Singh teaches on an SaaS system and monitoring applications from third-party vendors ([0668]). However, Singh is silent on providing a reclamation request for a license associated with one of the plurality of applications from a plurality of licenses associated with the plurality of applications based on the determined respective metrics.
Aggarwal teaches, in the same field of endeavor, A method implemented in a Software as a Service (SaaS) management platform (SMP) is provided, including: identifying a plurality of SaaS applications used by a customer of the SMP, Abstract.
Aggarwal teaches providing a reclamation request for a license associated with one of the plurality of applications from a plurality of licenses associated with the plurality of applications based on the determined respective metrics. (Contracts management application 132 exposes an API 134, and a corresponding one of the platform connectors for the contracts management application 132 is configured to obtain data from the contracts management application using the API 134. Contracts data can be used to provide visibility into license levels and contract spend, enabling recommendations for rightsizing and renewing licenses, as well as reclaiming unused licenses, Col 9 ln 35-44.)
It would have been obvious to a person of ordinary skill in the art before the effective filing date of the claimed invention, to modify Singh per Aggarwal to include providing a reclamation request for a license associated with one of the plurality of applications from a plurality of licenses associated with the plurality of applications based on the determined respective metrics. This would have been advantageous as discussed above, as it would allow the modified system to provide visibility into license levels and contract spend, enabling recommendations for rightsizing and renewing licenses. See Aggarwal Col 9 ln 35-44.
Regarding Claim 12:
Singh teaches A system comprising: processing circuitry; and a non-transitory memory, accessible by the processing circuitry and storing instructions that, when executed by the processing circuitry, ([0091] a computer program product embodied on a computer readable storage medium; and/or a processor, such as a processor configured to execute instructions stored on and/or provided by a memory coupled to the processor) cause the processing circuitry to perform operations comprising:
activating a communication channel (ie. terminal session, ssh session) with an agent installed on a client device (ie. node); ([0373]-[0375] A new process running openssh will be created for every new ssh login session and this process can be used to identify an ssh session on that machine. [0379] Charlie logs in (as user "x") and an ssh privileged process is created to handle Charlie's connection (353). A terminal session is created and a bash process is created (354) as a child of process 353. [0381] software agents (such as agent 112) may run on machines (such as a machine that implements one of nodes 116) and detect new connections, processes, and/or logins.)
while the communication channel is active, collecting usage data via the agent, wherein the usage data characterizes usage of a plurality of applications accessed via the client device; ([0108] An agent installed on node 116 can provide status information to data aggregator 114. Status information may be sent by an agent periodically (e.g., once an hour or once any other predetermined amount of time). [0113] User A deploys an appropriate installer on each of nodes 108. [0115] The agent may monitor for network connections, and then begin collecting information about processes associated with the network connections, using the presence of a network packet associated with a process as a trigger for collecting additional information about the process. [0376]-[0377] tracking user sessions.)
analyzing the usage data to determine respective metrics associated with the plurality of applications; ([0166] Tracking service analyzer 144 may normalize the tracking data as applicable, so that it can be inserted into data store 30 for later querying/analysis. [0168] data platform 12 can automatically discover entities deployed in a given datacenter. The entities may be grouped together logically (into analysis groups) based on behaviors, and temporal behavior baselines can be established. [0182]-[0189] Figs 2F-2M show interactive graphs with respective metrics and associated applications. [0180] FIG. 2E, 421 instances of sshd were executing during the one hour time period of data represented in polygraph 235. As indicated in region 237, nodes within the datacenter communicated with a total of 1349 IP addresses outside of the datacenter.) Fig. 2E is one of the examples of aggregated numerical metrics regarding a particular application.
providing an interactive user interface dashboard (ie. user B interacting with the polygraph) configured to display some or all of the determined respective metrics for each of the plurality of applications; ([0182]-[0189] Figs 2F-2M show interactive graphs with respective metrics and associated applications. [0182] FIG. 2F illustrates an example of an application communication polygraph for a datacenter (e.g., datacenter106) for the one hour period of 9 am-10 am on June 5. The time slice currently being viewed is indicated in region 240. If user B clicks his mouse in region 241, user B will be shown a representation of the application-communication polygraph as generated for the following hour (10 am-11 am on June 5). [0183] FIG. 2G depicts what is shown in user B's browser after he has clicked on region 241, and has further clicked on region 242. [0196] Graph generator 146 may generate graphs of entities (as the nodes in the graph) and activities between entities (as the edges). [0199] A graph may be a summary of all activity that happened in a particular time interval. As each graph corresponds to a distinct period of time, different rows can be aggregated to find summary information over a larger timestamp. [0473] The behavior graph model can be used (e.g., during forensic analysis) to answer questions helpful during an investigation.)
Singh teaches on an SaaS system and monitoring applications from third-party vendors ([0668]). However, Singh is silent on providing a reclamation request for a license associated with one of the plurality of applications from a plurality of licenses associated with the plurality of applications based on the determined respective metrics.
Aggarwal teaches providing a reclamation request for a license associated with one of the plurality of applications from a plurality of licenses associated with the plurality of applications based on the determined respective metrics. (Contracts management application 132 exposes an API 134, and a corresponding one of the platform connectors for the contracts management application 132 is configured to obtain data from the contracts management application using the API 134. Contracts data can be used to provide visibility into license levels and contract spend, enabling recommendations for rightsizing and renewing licenses, as well as reclaiming unused licenses, Col 9 ln 35-44.)
It would have been obvious to a person of ordinary skill in the art before the effective filing date of the claimed invention, to modify Singh per Aggarwal to include providing a reclamation request for a license associated with one of the plurality of applications from a plurality of licenses associated with the plurality of applications based on the determined respective metrics. This would have been advantageous as discussed above, as it would allow the modified system to provide visibility into license levels and contract spend, enabling recommendations for rightsizing and renewing licenses. See Aggarwal Col 9 ln 35-44.
Regarding Claim 18:
Singh teaches A non-transitory, computer readable medium comprising instructions that when executed by processing circuitry, ([0091] a computer program product embodied on a computer readable storage medium; and/or a processor, such as a processor configured to execute instructions stored on and/or provided by a memory coupled to the processor) cause the processing circuitry to perform operations comprising:
activating a communication channel (ie. terminal session, ssh session) with an agent installed on a client device (ie. node); ([0373]-[0375] A new process running openssh will be created for every new ssh login session and this process can be used to identify an ssh session on that machine. [0379] Charlie logs in (as user "x") and an ssh privileged process is created to handle Charlie's connection (353). A terminal session is created and a bash process is created (354) as a child of process 353. [0381] software agents (such as agent 112) may run on machines (such as a machine that implements one of nodes 116) and detect new connections, processes, and/or logins.)
while the communication channel is active, collecting usage data via the agent, wherein the usage data characterizes usage of a plurality of applications accessed via the client device; ([0108] An agent installed on node 116 can provide status information to data aggregator 114. Status information may be sent by an agent periodically (e.g., once an hour or once any other predetermined amount of time). [0113] User A deploys an appropriate installer on each of nodes 108. [0115] The agent may monitor for network connections, and then begin collecting information about processes associated with the network connections, using the presence of a network packet associated with a process as a trigger for collecting additional information about the process. [0376]-[0377] tracking user sessions.)
Singh teaches on an SaaS system and monitoring applications from third-party vendors ([0668]). However, Singh is silent on providing a reclamation request for a license associated with one of the plurality of applications from a plurality of licenses associated with the plurality of applications based on the determined respective metrics.
Aggarwal teaches providing a reclamation request for a license associated with one of the plurality of applications from a plurality of licenses associated with the plurality of applications based on the determined respective metrics. (Contracts management application 132 exposes an API 134, and a corresponding one of the platform connectors for the contracts management application 132 is configured to obtain data from the contracts management application using the API 134. Contracts data can be used to provide visibility into license levels and contract spend, enabling recommendations for rightsizing and renewing licenses, as well as reclaiming unused licenses, Col 9 ln 35-44.)
It would have been obvious to a person of ordinary skill in the art before the effective filing date of the claimed invention, to modify Singh per Aggarwal to include providing a reclamation request for a license associated with one of the plurality of applications from a plurality of licenses associated with the plurality of applications based on the determined respective metrics. This would have been advantageous as discussed above, as it would allow the modified system to provide visibility into license levels and contract spend, enabling recommendations for rightsizing and renewing licenses. See Aggarwal Col 9 ln 35-44.
Regarding Claims 2, 13:
Singh (as modified by Aggarwal) teaches on the inventions of claims 1, 12 as described.
Singh teaches on an SaaS system and monitoring applications from third-party vendors ([0668]). However, Singh is silent on wherein the determined respective metrics are based on auditing data regarding license usage and uptime data.
Aggarwal teaches wherein the determined respective metrics are based on auditing data regarding license usage (Contracts management application 132 exposes an API 134, and a corresponding one of the platform connectors for the contracts management application 132 is configured to obtain data from the contracts management application using the API 134. Contracts data can be used to provide visibility into license levels and contract spend, enabling recommendations for rightsizing and renewing licenses, as well as reclaiming unused licenses, Col 9 ln 35-44.) and uptime data. (It will be appreciated that the platform connectors 104 can be configured to automatically update data over time, for example, periodically pulling data from the relevant sources. In this manner, customer-specific contextual data for understanding SaaS application usage is continually maintained and tracks the current state of the customer organization, Col 9 ln 58-63.)
It would have been obvious to a person of ordinary skill in the art before the effective filing date of the claimed invention, to modify Singh per Aggarwal to include wherein the determined respective metrics are based on auditing data regarding license usage and uptime data. This would have been advantageous as discussed above, as it would allow the modified system to provide visibility into license levels and contract spend, enabling recommendations for rightsizing and renewing licenses. See Aggarwal Col 9 ln 35-44.
Regarding Claim 5:
Singh (as modified by Aggarwal) teaches on the invention of claim 2 as described.
Singh teaches wherein analyzing the usage data to determine the respective metrics associated with the plurality of applications comprises identifying that usage of a particular application of the plurality of applications meets respective application uptime requirements. ([0248] Examples of such parameters include the command line of the process, the command line of the process's parent( s) (if applicable), the uptime of the process, UID/EUID and any change information. [0603] The systems described may be configured to collect security event logs ( or any other type of log or similar record of activity) and telemetry in real time for threat detection, for analyzing compliance requirements.)
Regarding Claim 7:
Singh (as modified by Aggarwal) teaches on the invention of claim 1 as described.
Singh teaches further comprising enriching the usage data with one or more of location data, a client identifier, or a number of available licenses assigned to the client device. ([0163] Data platform 12 uses one or more streams for all incoming customer data (e.g., including data provided by data aggregator 114 and data aggregator 128), and the data is sharded based on the node that originated the data (e.g., node 116 vs. node 122), with each node having a globally unique identifier within data platform 12. [0759][0760] FIG. 16 also includes gathering 1604 second information generated by a client application executed on the user device, wherein the second information describes activity associated with the user device. The second information may describes a location of the user device, include identifiers for various hardware or software components of the user device. For example, such identifiers may include a device identifier such as a MAC address, device serial number.)
Regarding Claim 8:
Singh (as modified by Aggarwal) teaches on the invention of claim 1 as described.
Singh teaches wherein the usage data comprises one or more of application uptime, a number of crashes, an amount of activity, an amount of resource usage, or an amount of user usage. ([0739] FIG. 13, gathering 1204 information describing current activity associated with the user device can include gathering 1310 information describing usage of applications that are being accessed by the user device. [0748] The representation of the applications may include, for example, a name of the application, a name of the binary, a custom label for the application, or any other information associated with the application including information describing the usage of the application.)
Regarding Claim 9:
Singh (as modified by Aggarwal) teaches on the invention of claim 1 as described.
Singh teaches comprising receiving inputs to configure types of the usage data collected, a frequency of the collection of the usage data, or both. ([0088] agents 38 may selectively report information to data platform 12 in varying amounts of detail and/or with variable frequency. [0108] Status information may be sent by an agent periodically (e.g., once an hour or once any other predetermined amount of time). [0697] Information may be gathered 902 to determine whether the location of the user device is a location where the user device is frequently utilized.)
Regarding Claim 10:
Singh (as modified by Aggarwal) teaches on the invention of claim 1 as described.
Singh teaches wherein the plurality of applications comprises one or more user device applications and one or more cloud services. ([0070] Cloud environment 14 may include any suitable network-based computing environment as may serve a particular application. For example, cloud environment 14 may be implemented by one or more compute resources provided and/or otherwise managed by one or more cloud service providers.)
Regarding Claim 11:
Singh (as modified by Aggarwal) teaches on the invention of claim 1 as described.
Singh teaches further comprising outputting a notification based on the determined respective metrics to the client device. ([0691] FIG. 7 also includes, responsive to determining that the device activity associated with the user deviates from normal activity for the user, generating 708 an alert. The alert that is generated 708 may include contextual information including the specific Actions. The alert may be issued to the user of the device, issued to a system administrator or similar entity that oversees a company's deployment, or issued elsewhere.)
Regarding Claim 15:
Singh (as modified by Aggarwal) teaches on the invention of claim 12 as described.
Singh teaches wherein the usage data comprises application uptime, a number of crashes, an amount of activity, an amount of resource usage, an amount of user usage, a response time, a session time, a page load time, a last access time, or any combination thereof. ([0739] FIG. 13, gathering 1204 information describing current activity associated with the user device can include gathering 1310 information describing usage of applications that are being accessed by the user device. [0748] The representation of the applications may include, for example, a name of the application, a name of the binary, a custom label for the application, or any other information associated with the application including information describing the usage of the application.)
Regarding Claim 16:
Singh (as modified by Aggarwal) teaches on the invention of claim 12 as described.
Singh teaches wherein the determined respective metrics comprise a total number of users metric, a number of sessions metric, a page views metric, an average session duration metric, an average response time metric, an average page load time metric, a failed requests metric, or any combination thereof. ([0177] Behaviors of the seven processes are clustered together, into a single summary. As indicated in region 227, statistical information about the connections is also maintained (e.g., number of connections, histogram information, etc.).)
Regarding Claim 17:
Singh (as modified by Aggarwal) teaches on the invention of claim 12 as described.
Singh teaches wherein the instructions cause the processing circuitry to perform operations comprising enriching the usage data with location data, a client identifier, a number of available licenses assigned to the client device, or any combination thereof. ([0163] Data platform 12 uses one or more streams for all incoming customer data (e.g., including data provided by data aggregator 114 and data aggregator 128), and the data is sharded based on the node that originated the data (e.g., node 116 vs. node 122), with each node having a globally unique identifier within data platform 12. [0759][0760] FIG. 16 also includes gathering 1604 second information generated by a client application executed on the user device, wherein the second information describes activity associated with the user device. The second information may describes a location of the user device, include identifiers for various hardware or software components of the user device. For example, such identifiers may include a device identifier such as a MAC address, device serial number.)
Regarding Claim 19:
Singh (as modified by Aggarwal) teaches on the invention of claim 18 as described.
Singh teaches wherein analyzing the usage data to determine the respective metrics associated with the plurality of applications comprises identifying that usage of a particular application of the plurality of applications meets respective application uptime requirements. ([0248] Examples of such parameters include the command line of the process, the command line of the process's parent( s) (if applicable), the uptime of the process, UID/EUID and any change information. [0603] The systems described may be configured to collect security event logs ( or any other type of log or similar record of activity) and telemetry in real time for threat detection, for analyzing compliance requirements.)
Singh teaches on an SaaS system and monitoring applications from third-party vendors ([0668]). However, Singh is silent on wherein the determined respective metrics are based on auditing data regarding license usage.
Aggarwal teaches wherein the determined respective metrics are based on auditing data regarding license usage. (Contracts management application 132 exposes an API 134, and a corresponding one of the platform connectors for the contracts management application 132 is configured to obtain data from the contracts management application using the API 134. Contracts data can be used to provide visibility into license levels and contract spend, enabling recommendations for rightsizing and renewing licenses, as well as reclaiming unused licenses, Col 9 ln 35-44.)
It would have been obvious to a person of ordinary skill in the art before the effective filing date of the claimed invention, to modify Singh per Aggarwal to include wherein the determined respective metrics are based on auditing data regarding license usage. This would have been advantageous as discussed above, as it would allow the modified system to provide visibility into license levels and contract spend, enabling recommendations for rightsizing and renewing licenses. See Aggarwal Col 9 ln 35-44.
Regarding Claim 20:
Singh (as modified by Aggarwal) teaches on the invention of claim 18 as described.
Singh teaches wherein the usage data comprises application uptime, a number of crashes, an amount of activity, an amount of resource usage, an amount of user usage, a response time, a session time, a page load time, a last access time, or any combination thereof ([0739] FIG. 13, gathering 1204 information describing current activity associated with the user device can include gathering 1310 information describing usage of applications that are being accessed by the user device. [0748] The representation of the applications may include, for example, a name of the application, a name of the binary, a custom label for the application, or any other information associated with the application including information describing the usage of the application.)
and wherein the instructions cause the processing circuitry to perform operations comprising enriching the usage data with location data, a client identifier, a number of available licenses assigned to the client device, or any combination thereof. ([0163] Data platform 12 uses one or more streams for all incoming customer data (e.g., including data provided by data aggregator 114 and data aggregator 128), and the data is sharded based on the node that originated the data (e.g., node 116 vs. node 122), with each node having a globally unique identifier within data platform 12. [0759][0760] FIG. 16 also includes gathering 1604 second information generated by a client application executed on the user device, wherein the second information describes activity associated with the user device. The second information may describes a location of the user device, include identifiers for various hardware or software components of the user device. For example, such identifiers may include a device identifier such as a MAC address, device serial number.)
Claim(s) 3-4, 14 is/are rejected under 35 U.S.C. 103 as being unpatentable over US PGPub 2023/0254330 A1 (Singh) in view of US Patent 11,695,834 B1 (Aggarwal) further in view of US 2020/0349239 A1 (Tyagi).
Regarding Claims 3, 14:
Singh (as modified by Aggarwal) teaches on the inventions of claims 2, 13 as described.
Singh teaches analyzing the usage data to determine the respective metrics associated with the plurality of applications ([0668]) and Aggarwal teaches on licensing data in regards to applications. However, Singh (as modified by Aggarwal) is silent on identifying a percentage of the plurality of licenses being used that is below a threshold percentage.
Tyagi teaches, in the same field of endeavor, identifying a virtual software application that is accessible within a managed network, Abstract.
Tyagi teaches wherein analyzing the usage data to determine the respective metrics associated with the plurality of applications comprises identifying a percentage of the plurality of licenses being used that is below a threshold percentage. ([0147] Concurrent license usage graph 960 can illustrate license allocation for virtual applications and virtual desktops over time. [0148] Concurrent license usage graph 960 also indicates that concurrent license usage for virtual desktops was at a minimum of about 450 entities during “DAY 1”, and generally increased to a maximum of about 700 entities during “DAY 5”. Concurrent license usage graph 960 further indicates that concurrent license usage for virtual applications was at a minimum of about 400 entities during “DAY 1” and generally increased to reach a maximum of about 500 entities during “DAY 5”.)
It would have been obvious to a person of ordinary skill in the art before the effective filing date of the claimed invention, to modify Singh (as modified by Aggarwal) by modifying Aggarwal per Tyagi to include wherein analyzing the usage data to determine the respective metrics associated with the plurality of applications comprises identifying a percentage of the plurality of licenses being used that is below a threshold percentage. This would have been advantageous as discussed above, as it would allow the combined system to provide detailed visualizations of license usage in a rolling time window, allowing for targeted licensing analysis.
Regarding Claim 4:
Singh (as modified by Aggarwal) teaches on the invention of claim 2 as described.
Singh teaches analyzing the usage data to determine the respective metrics associated with the plurality of applications ([0668]) and Aggarwal teaches on licensing data in regards to applications. However, Singh (as modified by Aggarwal) is silent on wherein analyzing the usage data to determine the respective metrics associated with the plurality of applications comprises identifying that an amount of time a license from the plurality of licenses is available exceeds a threshold amount of time.
Tyagi teaches wherein analyzing the usage data to determine the respective metrics associated with the plurality of applications comprises identifying that an amount of time a license from the plurality of licenses is available exceeds a threshold amount of time. ([0147] Concurrent license usage graph 960 can illustrate license allocation for virtual applications and virtual desktops over time. Concurrent license usage for a virtual application (or a virtual desktop) during a time interval T1 (e.g., one day, one week, one month, three months) can indicate a maximum number of entities that simultaneously use the virtual application (or the virtual desktop) during T1. [0148] Concurrent license usage graph 960 indicates that concurrent license usage for virtual desktops exceeds concurrent license usage for virtual applications during the five days from DAY 1 to DAY 5.)
It would have been obvious to a person of ordinary skill in the art before the effective filing date of the claimed invention, to modify Singh (as modified by Aggarwal) by modifying Aggarwal per Tyagi to include wherein analyzing the usage data to determine the respective metrics associated with the plurality of applications comprises identifying that an amount of time a license from the plurality of licenses is available exceeds a threshold amount of time. This would have been advantageous as discussed above, as it would allow the combined system to provide detailed visualizations of license usage in a rolling time window, allowing for targeted licensing analysis.
Claim(s) 6 is/are rejected under 35 U.S.C. 103 as being unpatentable over US PGPub 2023/0254330 A1 (Singh) in view of US Patent 11,695,834 B1 (Aggarwal) further in view of US 2005/0203835 A1 (Nhaissi).
Regarding Claim 6:
Singh (as modified by Aggarwal) teaches on the invention of claim 2 as described.
Singh teaches analyzing the usage data to determine the respective metrics associated with the plurality of applications ([0668]). However, Singh (as modified by Aggarwal) is silent on requesting a refund in response to determining that the uptime data does not match a guaranteed uptime.
Nhaissi teaches, in the same field of endeavor, a method of managing pre-paid Internet access, Abstract.
Nhaissi teaches requesting a refund in response to determining that the uptime data does not match a guaranteed uptime. ([0191] A refund may sometimes be for less than the whole amount. Preferably, the user requests the refund. Claim 167. A method of calculating a pre-paid account balance, comprising: deducting from said account responsive to activities charged to said account, which activities include an interaction with an Internet; determining a quality of said activity; and adding to said account responsive to said determined quality, if said quality is deemed unsatisfactory.)
It would have been obvious to a person of ordinary skill in the art before the effective filing date of the claimed invention, to modify Singh (as modified by Aggarwal) by modifying Singh per Nhaissi to include requesting a refund in response to determining that the uptime data does not match a guaranteed uptime. This would have been advantageous as discussed above, as it would allow the combined system to guarantee quality by providing compensation when the quality of service is not met.
Conclusion & Contact Information
Any inquiry concerning this communication or earlier communications from the examiner should be directed to RACHEL J HACKENBERG whose telephone number is (571)272-5417. The examiner can normally be reached 9am-5pm M-F.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Glenton B Burgess can be reached at (571)272-3949. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/RACHEL J HACKENBERG/Primary Examiner, Art Unit 2454