Patent ID: 12225094

DETAILED DESCRIPTION OF EXAMPLE EMBODIMENTS

Currently, content providers license their media offerings (e.g., forms of proprietary and/or licensed digital content) to streaming providers in accordance with specified DMAs. Streaming providers, therefore, assume the responsibility in determining if/when a customer is located in a particular DMA zone that is licensed to view particular content.

Recently, streaming providers have deployed Fixed Wireless Access (FWA) offerings from Fixed Wireless Providers (FWP) that enable streaming media services to be provided via a mobile network, such as a fifth generation (5G) network. However, such mobile networks are not designed or configured with DMA area capabilities (e.g., they are not location-based, nor geographically constricted).

For example, Internet Protocol (IP) address allocation in mobile networks is performed by the User Plane Function (UPF) in 5G networks and the Packet Gateway (PGW) in fourth generation (4G) networks, and such gateways have specific IP pools assigned to them that are tied to a specific geographic area. When a FWA customer is assigned an IP address, these allocations are performed in a geographic boundary that does not align with the geographic boundaries of DMA(s). These boundaries on a FWA network are based on the specific IP pools assigned to UPFs/PGWs in 5G/4G networks. Thus, there is no coupling between IP allocation and DMA boundaries in FWA deployment environments. As such, current FWA deployments may fall-short of providing secure, private and accurate streaming capabilities for streaming providers and their customers.

Accordingly, as discussed herein, the disclosed systems and methods provide a novel framework that enables the mapping of an IP address to a particular geolocation node of a mobile network, whereby a DMA for such node can be identified/determined and, therefore, leveraged for monitoring a customer user's location respective to streaming service/media access requests. As provided below, this can enable secure and accurate read/write access to subscribed streaming content.

FIG.1is a block diagram of an example network architecture according to some embodiments of the present disclosure. In the illustrated embodiment, UE102accesses a data network108via an access network104and a core network106. In the illustrated embodiment, UE102comprises any computing device capable of communicating with the access network104. As examples, UE102may include mobile phones, tablets, laptops, sensors, Internet of Things (IoT) devices, autonomous machines, wired devices, wireless handsets, and any other devices equipped with a cellular or wireless or wired transceiver. One example of a UE is provided inFIG.6.

In the illustrated embodiment, the access network104comprises a network allowing network communication with UE102. In general, the access network104includes at least one base station that is communicatively coupled to the core network106and coupled to zero or more UE102.

In some embodiments, the access network104comprises a cellular access network, for example, a 5G network. In an embodiment, the access network104can include a NextGen Radio Access Network (NG-RAN). In an embodiment, the access network104includes a plurality of next Generation Node B (e.g., eNodeB and gNodeB) base stations connected to UE102via an air interface. In one embodiment, the air interface comprises a New Radio (NR) air interface. For example, in a 5G network, individual user devices can be communicatively coupled via an X2 interface.

In the illustrated embodiment, the access network104provides access to a core network106to the UE102. In the illustrated embodiment, the core network may be owned and/or operated by a network operator (NO) and provides wireless connectivity to UE102. In the illustrated embodiment, this connectivity may comprise voice and data services.

At a high-level, the core network106may include a user plane and a control plane. In one embodiment, the control plane comprises network elements and communications interfaces to allow for the management of user connections and sessions. By contrast, the user plane may comprise network elements and communications interfaces to transmit user data from UE102to elements of the core network106and to external network-attached elements in a data network108such as the Internet.

In the illustrated embodiment, the access network104and the core network106are operated by a NO. However, in some embodiments, the networks (104,106) may be operated by a private entity and may be closed to public traffic. For example, the components of the network106may be provided as a single device, and the access network104may comprise a small form-factor base station. In these embodiments, the operator of the device can simulate a cellular network, and UE102can connect to this network similar to connecting to a national or regional network.

In some embodiments, the access network104, core network106and data network108can be configured as a multi-access edge computing (MEC) network, where MEC or edge nodes are embodied as each UE102and are situated at the edge of a cellular network, for example, in a cellular base station or equivalent location. In general, the MEC or edge nodes may comprise UEs that comprise any computing device capable of responding to network requests from another UE102(referred to generally for example as a client) and is not intended to be limited to a specific hardware or software configuration of a device.

FIG.1further includes DMA engine200, which is configured for performing the DMA verification and content access control based therefrom, as discussed herein. DMA engine200can be a special purpose machine or processor, and could be hosted by or integrated into functionality associated with access network104, core network106and/or data network108, or some combination thereof. For example, DMA engine200can be configured to connect to and/or integrate with eNodeB and gNodeB components (of access network104) that connect core network106to UE102. In another example, DMA engine200can be hosted on a 5G Core—e.g., on network106. And, in some non-limiting embodiments, DMA engine200can be executed via UE102.

In some embodiments, engine200can be hosted by any type of network server, such as, but not limited to, an edge node or server, application server, content server, web server, and the like, or any combination thereof.

As depicted inFIG.2, DMA engine200can include, but is not limited to, identification module202, analysis module204, determination module206and output module208. The operational capabilities and implemented functionality of each module202-208, and engine200as a whole, are discussed in more detail at least in relation toFIGS.4-5, infra.

In some embodiments, DMA engine200can be connected to a database or data store (not shown). The database can store information collected, processed and/or determined from the computations performed by each module202-208. Such information can include data and metadata associated with local and/or network traffic information related to enterprises, users, UEs, services, locations, applications, content and the like.

It should be understood that the engine(s) and modules discussed herein are non-exhaustive, as additional or fewer engines and/or modules (or sub-modules) may be applicable to the embodiments of the systems and methods discussed. More detail of the operations, configurations and functionalities of engine200and each of its modules, and their role within embodiments of the present disclosure will be discussed below.

FIG.3provides a non-limiting example embodiment of a network configuration for implementation of the DMA framework, as discussed herein. According to some embodiments, network configuration300provides an example networking operating environment for the performance of Processes400and500ofFIGS.3and4, as discussed infra.

Depicted inFIG.3is UE102, gNodeB302, UPF304, data network108, streaming provider306and application program interface (API) gateway308. According to some embodiments, gNodeB302and/or UPF304can reside in and/or be associated with access network104and/or core network106, discussed supra. In some embodiments, API gateway308can reside in and/or be associated with access network104and/or core network106. In some embodiments, API gateway308can function to host engine200and provide DMA management functionality between UE102and streaming provider306via data network108.

According to some embodiments, UE102can request and receive streaming content from streaming provider306. In some embodiments, gNodeB302(e.g., functioning as a localized cell tower for a mobile network of UE102) can connect UE102to UPF304, where UPF304can provide an IP address associated with the network connection of UE102(e.g., UE102's connection to the data network108). In some embodiments, API gateway308can generate a notification detailing that the IP address for the UE102is in, within and/or associated with a particular DMA based on the gNodeB302. As discussed below, in some embodiments, streaming provider306can cause a verification operation related to UE102related to whether UE102is receiving appropriate/approved content in relation to their location. Such determinations/verifications are discussed in more detail below.

FIGS.4and5depict operations for the disclosed framework (e.g., via engine200) to leverage DMAs via mobile networks.FIG.4provides an IP address to a DMA location service using network APIs, andFIG.5provides IP re-allocation DMA verification services, which entail privacy protections included therein, as discussed below.

Turning toFIG.4, Process400is disclosed, where according to some embodiments, Step402of Process400can be performed by identification module202of DMA engine; Step404can be performed by analysis module204; Steps406-410can be performed by determination module206; and Steps412-414can be performed by output module208.

According to some embodiments, Process400begins with Step402where engine200can identify an IP address associated with a device of a user. The device can be associated with a streaming service. For example, the device (e.g., UE102) can be requesting access to and/or engaging in streaming services provided by a streaming provider (e.g., Netflix®). As discussed above, the IP address can be associated with the device's connection to a mobile network, which can be provided by and/or enabled via gNodeB302, as discussed in relation toFIG.3, supra.

In Step404, engine200can analyze the IP address, whereby in Step406, engine200can determine identity information associated with a user of the device. In some embodiments, the analysis performed in Step404can be performed via any type of known or to be known functionality related to the identification of IP address for purposes of determining an associated device's and/or user's identity. For example, the IP address can be tracked to the device and/or service connection, whereby a user's account can be identified from which the identity (ID) of the user can be retrieved/extracted.

In some embodiments, the ID of the user can correspond to, but not be limited to, an account of the user (on the mobile network, with the device provider and/or with the streaming provider, and the like), name of the user, username, location, device ID, and the like.

In Step408, engine200can utilize the API gateway308to determine a geolocation node on the network. In other words, engine200can determine gNodeB302associated with the UE102(and the IP address from Step402). In some embodiments, Step408can involve mapping the IP address to the gNodeB302(e.g., determining a correlation to the manner in which gNodeB is enabling the IP address access to the data network108).

In Step410, engine200can determine a DMA associated with the geolocation node (determined in step408). According to some embodiments, engine200can implement functionality associated with API gateway308, via inputs of the IP address and/or gNodeB302to determine a DMA. In some embodiments, the determined information related to the DMA can be a data structure that provides information related to, but not limited to, a geographic location, server or servers associated with the network, cell tower or towers related to the network, a type of network, an identify of the streaming service, account/subscription information for the user of the streaming service, and the like, or some combination thereof.

In Step412, engine200can leverage the determined DMA information and generate an electronic communication. The communication, which can be configured as a notification or other type of configurable electronic message, can include information related to, but not limited to, the device ID and related information, IP address, user ID and related information, DMA information, account/subscriber information related to the streaming service, and the like, or some combination thereof.

And, in Step414, engine200can cause communication of the generated notification to a streaming provider. The communication can enable the streaming provider to control how the device (e.g., UE102) can access the digital content the streaming provider306is providing over data network108. For example, the streaming provider can be provided functional control over how the content is availed to the device in accordance with how the device is positioned in relation to the DMA (e.g., either within or outside the DMA). Further discussion of how the DMA can be leveraged to confirm the device's location is discussed in detail below at least in relation toFIG.5.

Turning toFIG.5, Process500is disclosed, where according to some embodiments, Steps502-504and526can be performed by identification module202of DMA engine200; Steps506and520can be performed by analysis module204; Steps508,512,516and522can be performed by determination module206; and Steps510,514,518and524can be performed by output module208.

In some embodiments, Process500begins with Step502where engine200can identify an initiation of a streaming session via a device of a user. In some embodiments, the device can initiate a streaming session by performing such action as, but not limited to, requesting an account set up, logging into an account, downloading/installing an application, opening or instantiating an application, selecting content from a network resource, visiting a web page or portal, and the like, or some combination thereof.

In Step504, based on the initiation of the streaming session (in Step502), engine200can identify information related to the account of the user and the location of the device. In some embodiments, such user account information and location determination can be performed in a similar manner as discussed above. For example, in some embodiments, the IP address of the device can be utilized to map the user's location and determine account information for the user.

In Step506, engine200can analyze the account and location information, and assign a DMA to the device based on a result of such analysis. According to some embodiments, the account information can include information about the user, such as, but not limited to, user profile information, ID, demographics, user preferences and user behaviors, settings, and the like; and the location information can indicate a precise location of the user and/or a geographic region of the user. Therefore, in some embodiments, in Step506, engine200can analyze such user account and location information as inputs to a computational analysis model, whereby a DMA for the streaming session can be determined, then assigned to the device. In some embodiments, such analysis can be performed via any type of known or to be known computational analysis technique, including artificial intelligence and/or machine learning (AI/ML) models, such as, but not limited to, feature vector analysis, decision trees, boosting, support-vector machines, neural networks, nearest neighbor algorithms, Naive Bayes, bagging, random forests, logistic regression, and the like.

In Step508, engine200can map the IP address of the device to the DMA, where the IP address is based on the location of the device.

In Step510, engine200can generate a first hash value based on the mapping performed in Step508. In some embodiments, the generation of a hash value can refer to a one-way mathematical function that takes the input associated with the account information and location related to the device and the subsequent generation of a fixed-size string of characters to create a unique representation of the information and location related to the device. In some embodiments, engine200can generate a salt value for the device based on the generated hash value. A salt value refers to a random string of characters that can be generated uniquely for a particular user and/or device, and serves as an additional security layer used in conjunction with the hashing value. For example, if two devices have identical account information and are located in the same area, their respective hash values will be different due to the unique salts. In some embodiments, engine200can store the first generated hash value, and related salt values, in a database (not shown), which can be associated with a streaming provider and/or network provider.

In Step512, engine200can determine whether verification of the user is required. According to some embodiments, the verification may be required if the IP address and the location of the device do not align with the appropriate DMA. Thus, in Step512, engine200can perform a computerized comparative analysis between the information related to the IP address and the DMA, and determine whether they correspond to the same geographic location (or geographic proximity).

In some embodiments, when the IP address and the location of the device align with the DMA, engine200can proceed to Step514, where the DMA for the streaming session is verified (or confirmed as being accurate). In some embodiments, such verification can cause the generation and communication of a notification detailing the verification, which can be sent to the streaming provider, network provider and/or user, and the like, or some combination thereof.

In some embodiments, when the determination in Step512indicates that the IP address and DMA do not correlate to the same proximate locations (e.g., the IP address does not align with the geographic boundaries of the DMA), engine200can proceed to Step516where Steps504-508can be performed (e.g., engine200recursively calls instructions related to Steps504-508). Thus, in Step516, engine200can determine current values for the streaming session and device. In some embodiments, engine200can identify a modification to the IP address based on a difference in the two hash values. Thus, the values/information determined in Step504,506and508are re-determined based on current positioning and/or IP address information of the device.

In Step518, engine200can generate a second hash value. In some embodiments, the second has value can be determined based on the information determined in Step516, which can be performed in a similar manner as discussed above at least in relation to Step510.

In Step520, engine200can perform a comparative analysis of the second hash value (from Step518) to the first hash value (from Step510). In Step522, engine200can, based on the comparison in Step520, determine whether the second hash value corresponds to the DMA associated with the first hash value. In some embodiments, such determination (and comparison) can be effectuated via execution of instructions associated with the API gateway308, whereby when the hash values are the same, then their DMA correspondence location can be deemed the same).

In some embodiments, when the two hash values are determined to be the same, engine200can proceed to Step522, where the DMA for the streaming session can be verified, which can be performed in a similar manner as discussed above at least in relation to Step514. When the two hash values are determined to be different, engine200can proceed to Step524, where a current location of the device (and/or user) can be requested. Upon execution of Step526, engine200can recursively proceed to Step504for processing of the newly identified location information in a similar manner as discussed above. In some embodiments, upon executing Step526, a notification or other type of electronic message can be compiled and communicated to the streaming provider, network provider and/or user, as discussed above, alerting such entities as to the need to update the DMA, as discussed herein.

FIG.6is a block diagram illustrating a computing device showing an example of a client or server device used in the various embodiments of the disclosure.

The computing device600may include more or fewer components than those shown inFIG.6, depending on the deployment or usage of the device600. For example, a server computing device, such as a rack-mounted server, may not include audio interfaces652, displays654, keypads656, illuminators658, haptic interfaces662, GPS receivers664, or cameras/sensors666. Some devices may include additional components not shown, such as graphics processing unit (GPU) devices, cryptographic co-processors, artificial intelligence (AI) accelerators, or other peripheral devices.

As shown inFIG.6, the device600includes a central processing unit (CPU)622in communication with a mass memory630via a bus624. The computing device600also includes one or more network interfaces650, an audio interface652, a display654, a keypad656, an illuminator658, an input/output interface660, a haptic interface662, an optional global positioning systems (GPS) receiver664and a camera(s) or other optical, thermal, or electromagnetic sensors666. Device600can include one camera/sensor666or a plurality of cameras/sensors666. The positioning of the camera(s)/sensor(s)666on the device600can change per device600model, per device600capabilities, and the like, or some combination thereof.

In some embodiments, the CPU622may comprise a general-purpose CPU. The CPU622may comprise a single-core or multiple-core CPU. The CPU622may comprise a system-on-a-chip (SoC) or a similar embedded system. In some embodiments, a GPU may be used in place of, or in combination with, a CPU622. Mass memory630may comprise a dynamic random-access memory (DRAM) device, a static random-access memory device (SRAM), or a Flash (e.g., NAND Flash) memory device. In some embodiments, mass memory630may comprise a combination of such memory types. In one embodiment, the bus624may comprise a Peripheral Component Interconnect Express (PCIe) bus. In some embodiments, the bus624may comprise multiple busses instead of a single bus.

Mass memory630illustrates another example of computer storage media for the storage of information such as computer-readable instructions, data structures, program modules, or other data. Mass memory630stores a basic input/output system (“BIOS”)640for controlling the low-level operation of the computing device600. The mass memory also stores an operating system641for controlling the operation of the computing device600.

Applications642may include computer-executable instructions which, when executed by the computing device600, perform any of the methods (or portions of the methods) described previously in the description of the preceding Figures. In some embodiments, the software or programs implementing the method embodiments can be read from a hard disk drive (not illustrated) and temporarily stored in RAM632by CPU622. CPU622may then read the software or data from RAM632, process them, and store them to RAM632again.

The computing device600may optionally communicate with a base station (not shown) or directly with another computing device. Network interface650is sometimes known as a transceiver, transceiving device, or network interface card (NIC).

The audio interface652produces and receives audio signals such as the sound of a human voice. For example, the audio interface652may be coupled to a speaker and microphone (not shown) to enable telecommunication with others or generate an audio acknowledgment for some action. Display654may be a liquid crystal display (LCD), gas plasma, light-emitting diode (LED), or any other type of display used with a computing device. Display654may also include a touch-sensitive screen arranged to receive input from an object such as a stylus or a digit from a human hand.

Keypad656may comprise any input device arranged to receive input from a user. Illuminator658may provide a status indication or provide light.

The computing device600also comprises an input/output interface660for communicating with external devices, using communication technologies, such as USB, infrared, Bluetooth™, or the like. The haptic interface662provides tactile feedback to a user of the client device.

The optional GPS transceiver664can determine the physical coordinates of the computing device600on the surface of the Earth, which typically outputs a location as latitude and longitude values. GPS transceiver664can also employ other geo-positioning mechanisms, including, but not limited to, triangulation, assisted GPS (AGPS), E-OTD, CI, SAI, ETA, BSS, or the like, to further determine the physical location of the computing device600on the surface of the Earth. In one embodiment, however, the computing device600may communicate through other components, providing other information that may be employed to determine a physical location of the device, including, for example, a MAC address, IP address, or the like.

The present disclosure has been described with reference to the accompanying drawings, which form a part hereof, and which show, by way of non-limiting illustration, certain example embodiments. Subject matter may, however, be embodied in a variety of different forms and, therefore, covered or claimed subject matter is intended to be construed as not being limited to any example embodiments set forth herein; example embodiments are provided merely to be illustrative. Likewise, a reasonably broad scope for claimed or covered subject matter is intended. Among other things, for example, subject matter may be embodied as methods, devices, components, or systems. Accordingly, embodiments may, for example, take the form of hardware, software, firmware or any combination thereof (other than software per se). The following detailed description is, therefore, not intended to be taken in a limiting sense.

Throughout the specification and claims, terms may have nuanced meanings suggested or implied in context beyond an explicitly stated meaning. Likewise, the phrase “in some embodiments” as used herein does not necessarily refer to the same embodiment and the phrase “in another embodiment” as used herein does not necessarily refer to a different embodiment. It is intended, for example, that claimed subject matter include combinations of example embodiments in whole or in part.

In general, terminology may be understood at least in part from usage in context. For example, terms, such as “and”, “or”, or “and/or,” as used herein may include a variety of meanings that may depend at least in part upon the context in which such terms are used. Typically, “or” if used to associate a list, such as A, B or C, is intended to mean A, B, and C, here used in the inclusive sense, as well as A, B or C, here used in the exclusive sense. In addition, the term “one or more” as used herein, depending at least in part upon context, may be used to describe any feature, structure, or characteristic in a singular sense or may be used to describe combinations of features, structures or characteristics in a plural sense. Similarly, terms, such as “a,” “an,” or “the,” again, may be understood to convey a singular usage or to convey a plural usage, depending at least in part upon context. In addition, the term “based on” may be understood as not necessarily intended to convey an exclusive set of factors and may, instead, allow for existence of additional factors not necessarily expressly described, again, depending at least in part on context.

The present disclosure has been described with reference to block diagrams and operational illustrations of methods and devices. It is understood that each block of the block diagrams or operational illustrations, and combinations of blocks in the block diagrams or operational illustrations, can be implemented by means of analog or digital hardware and computer program instructions. These computer program instructions can be provided to a processor of a general purpose computer to alter its function as detailed herein, a special purpose computer, ASIC, or other programmable data processing apparatus, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, implement the functions/acts specified in the block diagrams or operational block or blocks. In some alternate implementations, the functions/acts noted in the blocks can occur out of the order noted in the operational illustrations. For example, two blocks shown in succession can in fact be executed substantially concurrently or the blocks can sometimes be executed in the reverse order, depending upon the functionality/acts involved.

For the purposes of this disclosure, a non-transitory computer readable medium (or computer-readable storage medium/media) stores computer data, which data can include computer program code (or computer-executable instructions) that is executable by a computer, in machine readable form. By way of example, and not limitation, a computer readable medium may comprise computer readable storage media, for tangible or fixed storage of data, or communication media for transient interpretation of code-containing signals. Computer readable storage media, as used herein, refers to physical or tangible storage (as opposed to signals) and includes without limitation volatile and non-volatile, removable and non-removable media implemented in any method or technology for the tangible storage of information such as computer-readable instructions, data structures, program modules or other data. Computer readable storage media includes, but is not limited to, RAM, ROM, EPROM, EEPROM, flash memory or other solid state memory technology, optical storage, cloud storage, magnetic storage devices, or any other physical or material medium which can be used to tangibly store the desired information or data or instructions and which can be accessed by a computer or processor.

To the extent the aforementioned implementations collect, store, or employ personal information of individuals, groups, or other entities, it should be understood that such information shall be used in accordance with all applicable laws concerning the protection of personal information. Additionally, the collection, storage, and use of such information can be subject to the consent of the individual to such activity, for example, through well known “opt-in” or “opt-out” processes as can be appropriate for the situation and type of information. Storage and use of personal information can be in an appropriately secure manner reflective of the type of information, for example, through various access control, encryption, and anonymization techniques (for especially sensitive information).

In the preceding specification, various example embodiments have been described with reference to the accompanying drawings. However, it will be evident that various modifications and changes may be made thereto, and additional embodiments may be implemented without departing from the broader scope of the disclosed embodiments as set forth in the claims that follow. The specification and drawings are accordingly to be regarded in an illustrative rather than restrictive sense.