# US 12,120,007 B2 · Virtual private network manager

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,120,007 B2
- Document ID: US12120007B2
- Status: Granted
- Kind: B2
- Application number: 17/870,291
- Filed: 2022-07-21
- Published: 2022-11-10
- Granted: 2024-10-15
- Earliest claimed: 2019-01-03
- Assignees: Cerner Innovation, Inc.
- Applicants: Cerner Innovation, Inc.
- Inventors: Akkaladevi Vijay Krishna; Ravishankar Nagesh; Nese Manjunatha; Pravat Santra; Chirag Bharatia; Neeraj Kumar; Vedagiri Mohan Naveen
- Web page: https://patentgrep.com/patent/US12120007B2

## CPC

- H04L 43/062: related to network traffic
- H04L 12/4641: {Virtual LANs, VLANs, e.g. virtual private networks [VPN] (LAN interconnection over a bridge based backbone H04L12/462; encapsulation techniques H04L12/4633; routing of packets H04L45/00; packet switches H04L49/00; virtual private networks for security H04L63/0272)}
- H04L 43/045: for graphical visualisation of monitoring data
- H04L 43/0894: Packet rate
- H04L 67/535: {Tracking the activity of the user (network monitoring arrangements H04L43/00; recording of computer activity G06F11/34)}
- G06F 21/31: User authentication
- H04L 63/0272: {Virtual private networks}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Methods, computer systems, and computer-storage medium are provided for monitoring, analyzing, and providing reports regarding direct access technologies, for example DirectAccess, VPN, or VPN-like technologies. User activity associated with DirectAccess servers can be filtered by server location to allow administrators to determine which users, and how many users, utilized or are utilizing each DirectAccess server, which can be identified by geographic locations. In some cases, this information can be used to address technical support issues or to determine which resources of an entity may be under- or over-utilized.

## Claims

### Claim 1

A system comprising:
a database; and
a virtual private network manager connected, via a network, to a plurality of servers associated with a plurality of geographic locations, wherein the virtual private network manager performs operations comprising:
receiving, via the network, a plurality of log data from the plurality of servers associated with the plurality of geographic locations;
determining near real-time performance data for a plurality of connections of the plurality of servers based on the plurality of log data, wherein the near real-time performance data is monitored for each geographic location of the plurality of geographic locations;
determining user activity corresponding to connections initially established at each geographic location of the plurality of geographic locations, at least by differentiating, for a particular geographic location of the plurality of geographic locations, (a) connections initially established at a particular server of the plurality of servers from (b) connections routed through the particular server,
wherein determining user activity for the particular geographic location comprises determining, for each user of a plurality of users corresponding to the particular geographic location, a particular server utilized to initially establish a connection with the network, wherein for each user, of the plurality of users, the connection is routed from the particular server through one or more intermediate servers,
wherein determining the particular server utilized to initially establish the connection with the network comprises: differentiating, for each server of the plurality of servers, connections initially established at the particular server from connections routed through the particular server,
wherein the user activity is determined based on the near real-time performance data for the plurality of connections of the plurality of servers associated with the plurality of geographic locations;
based at least in part on the user activity for each geographic location of the plurality of geographic locations, increasing server resources or server resource availability at one or more geographic locations of the plurality of geographic locations.

### Claim 2 (depends on 1)

The system of claim 1, wherein for each of the plurality of servers, a computer-program script is automatically executed according to a predetermined schedule, wherein for each of the plurality of servers, a comma separated values (CSV) file is generated as a result of automatically executing the computer-program script according to the predetermined schedule.

### Claim 3 (depends on 2)

The system of claim 2, wherein for each of the plurality of servers, the CSV file is communicated to a folder address in the network, the CSV file is uploaded from the folder address into the database associated with the virtual private network manager, wherein the plurality of log data comprises the CSV file.

### Claim 4

A computerized method comprising:
receiving a plurality of log data from a plurality of servers associated with a plurality of geographic locations;
determining, by a manager tool, near real-time performance data for a plurality of connections of the plurality of servers based on the plurality of log data, wherein the near real-time performance data is monitored for each geographic location of the plurality of geographic locations;
determining user activity corresponding to connections initially established at each geographic location of the plurality of geographic locations, at least by differentiating, for a particular geographic location of the plurality of geographic locations, (a) connections initially established at a particular server of the plurality of servers from (b) connections routed through the particular server,
wherein determining user activity for the particular geographic location comprises determining, for each user of a plurality of users corresponding to the particular geographic location, a particular server utilized to initially establish a connection, wherein for each user, of the plurality of users, the connection is routed from the particular server through one or more intermediate servers,
wherein determining the particular server utilized to initially establish the connection comprises: differentiating, for each server of the plurality of servers, connections initially established at the particular server from connections routed through the particular server,
wherein the user activity is determined based on the near real-time performance data for the plurality of connections of the plurality of servers associated with the plurality of geographic locations;
based at least in part on the user activity for each geographic location of the plurality of geographic locations, increasing server resources or server resource availability at one or more geographic locations of the plurality of geographic locations.

### Claim 5 (depends on 4)

The method of claim 4, wherein determining user activity corresponding to connections initially established at each geographic location of the plurality of geographic locations comprises at least one of:
determining a total quantity of users for each of the plurality of servers;
determining a total quantity of direct access users within the total quantity of users for each of the plurality of servers;
determining each geographic location of the plurality of geographic locations; or
determining a type of location for each geographic location of the plurality of geographic locations.

### Claim 6 (depends on 4)

The method of claim 4, further comprising:
determining routing information for the plurality of connections with regard to the plurality of servers.

### Claim 7 (depends on 4)

The method of claim 4, further comprising for each of the plurality of servers:
automatically executing a computer-program script is according to a predetermined schedule;
generating a comma separated values (CSV) file as a result of automatically executing the computer-program script;
communicating the CSV file to a folder address in a network; and
uploading the CSV file from the folder address into a database associated with the manager tool, wherein the plurality of log data comprises the CSV file.

### Claim 8

One or more non-transitory computer-readable media comprising computer-usable instructions, which when executed by one or more processors, causes a performance of operations, comprising:
receive a plurality of log data from a plurality of servers associated with a plurality of geographic locations;
determine near real-time performance data for a plurality of connections of the plurality of servers based on the plurality of log data, wherein the near real-time performance data is monitored for each geographic location of the plurality of geographic locations; and
determine user activity corresponding to connections initially established at each geographic location of the plurality of geographic locations, at least by differentiating, for a particular geographic location of the plurality of geographic locations, (a) connections initially established at a particular server of the plurality of servers from (b) connections routed through the particular server,
wherein determining user activity for the particular geographic location comprises determining, for each user of a plurality of users corresponding to the particular geographic location, a particular server utilized to initially establish a connection, wherein for each user, of the plurality of users, the connection is routed from the particular server through one or more intermediate servers,
wherein determining the particular server utilized to initially establish the connection comprises: differentiating, for each server of the plurality of servers, connections initially established at the particular server from connections routed through the particular server,
wherein the user activity is determined based on the near real-time performance data for the plurality of connections of the plurality of servers associated with the plurality of geographic locations;
based at least in part on the user activity for each geographic location of the plurality of geographic locations, increasing server resources or server resource availability at one or more geographic locations of the plurality of geographic locations.

### Claim 9 (depends on 8)

The media of claim 8, wherein the user activity comprises at least one of:
a total quantity of users for each of the plurality of servers;
a total quantity of direct access users within the total quantity of users for each of the plurality of servers; or
identification of each geographic location of the plurality of geographic locations.

### Claim 10 (depends on 8)

The media of claim 8, wherein the operations further comprise:
identifying each geographic location of the plurality of geographic locations.

### Claim 11 (depends on 8)

The media of claim 8, wherein the operations further comprise:
identifying a type of location for each geographic location of the plurality of geographic locations.

### Claim 12 (depends on 8)

The media of claim 8, wherein the operations further comprise:
determining routing information for the plurality of connections with regard to the plurality of servers.

### Claim 13 (depends on 8)

The media of claim 8, wherein the operations further comprise, for each of the plurality of servers:
automatically executing a computer-program script according to a predetermined schedule;
generating a comma separated values (CSV) file as a result of automatically executing the computer-program script;
communicating the CSV file to a folder address in a network; and
uploading the CSV file from the folder address into a database, wherein the plurality of log data comprises the CSV file.

### Claim 14 (depends on 1)

The system of claim 1, wherein the operations further comprise:
based at least in part on the user activity with respect to at least a subset of the plurality of geographic locations, redistributing user activity with respect to the subset of the plurality of geographic locations.

### Claim 15 (depends on 1)

The system of claim 1, wherein the operations further comprise:
based at least in part on the user activity with respect to at least a subset of the plurality of geographic locations, determining an over-utilized set of servers and an under-utilized set of servers, and balancing user activity with respect to the over-utilized set of servers and the under-utilized set of servers.

### Claim 16 (depends on 1)

The system of claim 1, wherein the operations further comprise:
based at least in part on the user activity with respect to at least some the plurality of geographic locations, redistributing user activity from an over-utilized set of servers associated with a first geographic location of the plurality of geographic locations to an under-utilized set of servers associated with a second geographic location of the plurality of geographic locations.

### Claim 17 (depends on 1)

The system of claim 1, wherein the operations further comprise:
based at least in part on the user activity with respect to at least some the plurality of geographic locations, increasing resources or resource availability with respect to a first geographic location of the plurality of geographic locations, and decreasing resources or resource availability with respect to a second geographic location of the plurality of geographic locations.

### Claim 18 (depends on 1)

The system of claim 1, wherein increasing resources or resource availability at one or more geographic locations of the plurality of geographic locations comprises increasing a number of resources at a particular location based at least on the user activity at the particular location.

### Claim 19 (depends on 1)

The system of claim 1,
wherein with respect to a first user, of the plurality of users, a first connection is initially established at a first server corresponding to a first geographic location and the first connection is routed through a second server corresponding to a second geographic location, and
wherein increasing resources or resource availability at one or more geographic locations of the plurality of geographic locations comprises increasing a number of resources or resource availability at the first geographic location based at least on the user activity at the first server.

### Claim 20 (depends on 1)

The system of claim 1, wherein the operations further comprise:
determining an under-utilized set of servers and an over-utilized set of servers,
wherein the under-utilized set of servers comprises a first server utilized to initially establish a first connection with the network,
wherein the over-utilized set of servers comprises a second server; and
redistributing user activity from the first server to the second server, and utilizing the first server as an intermediate server.

### Claim 21 (depends on 4)

The method of claim 4,
wherein with respect to a first user, of the plurality of users, a first connection is initially established at a first server corresponding to a first geographic location and the first connection is routed through a second server corresponding to a second geographic location, and
wherein increasing resources or resource availability at one or more geographic locations of the plurality of geographic locations comprises increasing a number of resources or resource availability at the first geographic location based at least on the user activity at the first server.

### Claim 22 (depends on 8)

The media of claim 8, wherein the operations further comprise:
determining an under-utilized set of servers and an over-utilized set of servers,
wherein the under-utilized set of servers comprises a first server utilized to initially establish a first connection,
wherein the over-utilized set of servers comprises a second server; and
redistributing user activity from the first server to the second server, and utilizing the first server as an intermediate server.
