WO2024129084A1 - Software license enforcement - Google Patents
Software license enforcement Download PDFInfo
- Publication number
- WO2024129084A1 WO2024129084A1 PCT/US2022/052994 US2022052994W WO2024129084A1 WO 2024129084 A1 WO2024129084 A1 WO 2024129084A1 US 2022052994 W US2022052994 W US 2022052994W WO 2024129084 A1 WO2024129084 A1 WO 2024129084A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- host
- license
- temporary
- component
- cluster
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/105—Arrangements for software license management or administration, e.g. for managing licenses at corporate level
Definitions
- This invention relates to software licensing enforcement.
- SaaS software as a service
- a client does not buy a copy of an executable but rather pays a periodic, e.g., annual or monthly, fee for continued access to software.
- the SaaS model has the advantage of providing a continued revenue stream for the provider and ongoing support and updates for the client.
- the SaaS model relies on the ability of the provider to enforce licensing of executables and prevent attempts to use executables more or for longer than the client has paid for.
- An apparatus includes a computing device including one or more processing devices and one or more memory devices operably coupled to the one or more processing devices.
- the one or more memory devices store executable code that, when executed by the one or more processing devices, causes the one or more processing devices to transmit a first temporary license with an expiration date to a component executing on a host.
- the first temporary license authorizes the component to enable execution of managed software on the host. If a predefined time elapses without receiving a heartbeat message from the component, the component is instructed to expire the first temporary license.
- FIG. 1 is a schematic block diagram of a network environment in which licensed software may be deployed in accordance with an embodiment
- FIG. 2 is a schematic block diagram showing components for enforcing licenses in accordance with an embodiment
- FIG. 3A is a process flow diagram of a method for providing licenses by a global license server in accordance with an embodiment
- Fig. 3B is a process flow diagram of a method for a scheduling component to coordinate with a global license server in accordance with an embodiment
- FIG. 4 is a schematic block diagram of an example computing device suitable for implementing methods in accordance with embodiments of the invention.
- Fig. 1 illustrates an example network environment 100 in which the systems and methods disclosed herein may be used.
- the components of the network environment 100 may be connected to one another by a network such as a local area network (LAN), wide area network (WAN), the Internet, a backplane of a chassis, or other type of network.
- the components of the network environment 100 may be connected by wired or wireless network connections.
- the network environment 100 includes a plurality of servers 102.
- Each of the servers 102 may include one or more computing devices, such as a computing device having some or all of the attributes of the computing device 400 of Fig. 4.
- Computing resources may also be allocated and utilized within a cloud computing platform 104, such as amazon web services (AWS), GOOGLE CLOUD, AZURE, or other cloud computing platform.
- Cloud computing resources may include purchased physical storage, processor time, memory, and/or networking bandwidth in units designated by the provider by the cloud computing platform.
- some or all of the servers 102 may function as edge servers in a telecommunication network.
- some or all of the servers 102 may be coupled to baseband units (BBU) 102a that provide translation between radio frequency signals output and received by antennas 102b and digital data transmitted and received by the servers 102.
- BBU baseband units
- each BBU 102a may perform this translation according to a cellular wireless data protocol (e.g., 4G, 5G, etc.).
- Servers 102 that function as edge servers may have limited computational resources or may be heavily loaded.
- An orchestrator 106 provisions computing resources to application instances 118 of one or more different application executables, such as according to a manifest that defines requirements of computing resources for each application instance.
- the manifest may define dynamic requirements defining the scaling up or scaling down of a number of application instances 118 and corresponding computing resources in response to usage.
- the orchestrator 106 may include or cooperate with a utility such as KUBERNETES to perform dynamic scaling up and scaling down the number of application instances 118.
- An orchestrator 106 may execute on a computer system that is distinct from the servers 102 and is connected to the servers 102 by a network that requires the use of a destination address for communication, such as using a networking including ethemet protocol, internet protocol (IP), Fibre Channel, or other protocol, including any higher- level protocols built on the previously-mentioned protocols, such as user datagram protocol (UDP), transport control protocol (TCP), or the like.
- a networking including ethemet protocol, internet protocol (IP), Fibre Channel, or other protocol, including any higher- level protocols built on the previously-mentioned protocols, such as user datagram protocol (UDP), transport control protocol (TCP), or the like.
- the orchestrator 106 may cooperate with the servers 102 to initialize and configure the servers 102.
- each server 102 may cooperate with the orchestrator 106 to obtain a gateway address to use for outbound communication and a source address assigned to the server 102 for use in inbound communication.
- the server 102 may cooperate with the orchestrator 106 to install an operating system on the server 102.
- the gateway address and source address may be provided and the operating system installed using the approach described in U.S. Application Serial No. 16/903,266, filed June 16, 2020 and entitled AUTOMATED INITIALIZATION OF SERVERS, which is hereby incorporated herein by reference in its entirety.
- the orchestrator 106 may be accessible by way of an orchestrator dashboard 108.
- the orchestrator dashboard 108 may be implemented as a web server or other serverside application that is accessible by way of a browser or client application executing on a user computing device 110, such as a desktop computer, laptop computer, mobile phone, tablet computer, or other computing device.
- the orchestrator 106 may cooperate with the servers 102 in order to provision computing resources of the servers 102 and instantiate components of a distributed computing system on the servers 102 and/or on the cloud computing platform 104.
- the orchestrator 106 may ingest a manifest defining the provisioning of computing resources to, and the instantiation of, components such as a cluster 111, pod 112 (e g., KUBERNETES pod), container 114 (e.g., DOCKER container), storage volume 116, and an application instance 118.
- the orchestrator may then allocate computing resources and instantiate the components according to the manifest.
- the manifest may define requirements such as network latency requirements, affinity requirements (same node, same chassis, same rack, same data center, same cloud region, etc.), anti-affinity requirements (different node, different chassis, different rack, different data center, different cloud region, etc.), as well as minimum provisioning requirements (number of cores, amount of memory, etc.), performance or quality of service (QoS) requirements, or other constraints.
- the orchestrator 106 may therefore provision computing resources in order to satisfy or approximately satisfy the requirements of the manifest.
- a workflow is a series of tasks, executables, configuration, parameters, and other computing functions that are predefined and stored in a workflow repository 120.
- a workflow may be defined to instantiate each type of component (cluster 111, pod 112, container 114, storage volume 116, application instance, etc.), monitor the performance of each type of component, repair each type of component, upgrade each type of component, replace each type of component, copy (snapshot, backup, etc.) and restore from a copy each type of component, and other tasks.
- Some or all of the tasks performed by a workflow may be implemented using KUBERNETES or other utility for performing some or all of the tasks.
- the orchestrator 106 may instruct a workflow orchestrator 122 to perform a task with respect to a component.
- the workflow orchestrator 122 retrieves the workflow from the workflow repository 120 corresponding to the task (e.g., the type of task (instantiate, monitor, upgrade, replace, copy, restore, etc.) and the type of component.
- the workflow orchestrator 122 selects a worker 124 from a worker pool and instructs the worker 124 to implement the workflow with respect to a server 102 or the cloud computing platform 104.
- the instruction from the orchestrator 106 may specify a particular server 102, cloud region or cloud provider, or other location for performing the workflow.
- the worker 124 which may be a container, then implements the functions of the workflow with respect to the location instructed by the orchestrator 106. In some implementations, the worker 124 may also perform the tasks of retrieving a workflow from the workflow repository 120 as instructed by the workflow orchestrator 122. The workflow orchestrator 122 and/or the workers 124 may retrieve executable images for instantiating components from an image store 126.
- a scheduling component 128 may execute in the network environment 100.
- the scheduling component 128 may execute on a server 102 implementing a cluster 111 (e g., executing a KUBERNETES master for a cluster 111) or some other computing device.
- the scheduling component 128 may execute on a server 102 or other computing device executing the orchestrator 106, orchestrator dashboard 108, workflow orchestrator 122, and one or more of the workers 124.
- the scheduling component 128 coordinates with a global licensing server 130.
- the global licensing server 130 is a computer system owned or controlled by the entity providing software such as software implementing the orchestrator 106, workflow orchestrator 122, and/or workers 124.
- the global license server 130 may be a computer system owned or controlled by the entity providing software implementing one or more of the cluster 111, pod 112, container 114, storage volumes 116, and application instances 118.
- each cluster 111 is implemented as a KUBERNETES master and each pod 112 is implemented using a KUBERNETES Kubelet.
- the servers 102 implementing the clusters 111 and pods 112 may execute one or more items of software that are agents of the orchestrator 106.
- Use of the software implementing the agents may also be managed by the global licensing server.
- a container runtime interface (CRT) used by each pod 112 may be implemented as an agent of the orchestrator 106.
- the scheduling component 128 may be used to coordinate with a global licensing server 130 to enforce licensing of any software and is not limited to those components described above.
- managed software which may include any of the above referenced examples or any other type of software.
- a scheduling component 128 may execute in (e.g., on the same hosts) each cluster I l la, 111b.
- the scheduling component 128 for each cluster I l la, 111b may execute on a separate computing device from the cluster I l la, 111b controlled by the scheduling component 128 and communicate with the hosts of the cluster I l la, 11 lb by means of a network.
- the scheduling components 128 may connect to the global license server 130 directly or by way of a proxy server 200.
- the number of nodes may refer to a number of containers 114 in a cluster I l la, 111b that may be managed by an orchestrator 106, agents of the orchestrator 106, or other component executing the managed software.
- the number of nodes may refer to a number of instances of the managed software that may be simultaneously executed in a cluster I l la, 111b.
- the number of nodes may refer to a number of computing devices, processor cores, or other units of hardware that may be in a cluster I l la, 111b executing the managed software.
- the global license database 202 may store a blacklist 204.
- the blacklist 204 may list information for users, organizations, cluster identifiers, domains, internet protocol (IP) addresses, usernames, or other identifiers associated with attempts to use the managed software without acquiring a license authorizing that use.
- IP internet protocol
- Fig. 3A illustrates a method 300a that may be executed by a global license server 130 in order to control access to the managed software by a host.
- the host may be a cluster, one or more servers, computing resources in a cloud computing platform 104, or some other computing device.
- the method 300a may include receiving 302 a license acquisition.
- Receiving 302 a license acquisition may include receiving a notification that a user or organization has purchased a license.
- the notification may include an identifier of a domain, one or more hosts, cluster identifier, or other identifier (hereinafter “host identifier”).
- the notification may include a number of nodes and an expiration date for the license.
- the notification may be received from an interface, such as a webpage, by which users may select license parameters (host identifier, number of nodes, expiration, date, etc.) and provide payment or proof of payment.
- the method 300a may include recording 304 an entry in the global license database 202 that includes some or all of the host identifier, number of nodes, and the expiration date.
- the method 300a may further include generating 306 a temporary license.
- the temporary license may be a file that is encrypted, signed, or otherwise secured in order to enable verification of the accuracy of the file.
- the temporary license may be code that is associated with a file stored by the global license database 202 such that a presenter of the code will be granted permissions indicated in the file.
- the file may indicate the number of nodes, a host identifier, and a temporary expiration date.
- the temporary expiration date may occur much sooner than the expiration date of the license acquisition from step 302 such that multiple temporary licenses will need to be required before the expiration data is reached.
- the expiration date may be months or years in the future whereas the temporary license expires only one or more days or weeks in the future.
- the temporary license may then be transmitted to a scheduling component 128 executing on a host identified in the host identifier of the temporary license. Subsequent actions may then be performed. Since the only a temporary license was transmitted 308 (“the first temporary license”), the scheduling component 128 will request a second temporary license when the first temporary license is about to expire (e.g., within one hour, one day, or within some other time window). If a temporary license is found 310 to be requested by the scheduling component 128, the method 300a may include evaluating 312 whether the host or an entity associated with the host executing the scheduling 128, or otherwise requesting a new license by way of the scheduling component, is included in the blacklist 204. If not, processing continues at step 306 with the generation 306 of a new temporary license expiring at a point in the future equal to the expiration date of the preceding temporary license plus some duration, such as one or more days, weeks, or months.
- the method 300a may further include evaluating 314 whether a heartbeat is absent from the scheduling component 128.
- the scheduling component 128 may periodically (e.g., every hour, day, or some other interval) transmit heartbeat messages to the global license server 130.
- the heartbeat messages indicate that the scheduling component 128 is functioning correctly and is properly controlling usage of the managed software on one or more hosts referenced by the host identifier in the temporary license.
- a user may attempt to circumvent controls of the scheduling component 128 may stopping the scheduling component 128, cutting off communication of the scheduling component 128 from a network, manipulating a clock used by the scheduling component 128 to delay expiration of the temporary license, or perform other actions in order to obtain usage of the managed software without payment. Accordingly, any of such actions would result in the scheduling component 128 ceasing to periodically transmit heartbeat messages to the global license server 130 at a predefined interval.
- the heartbeat may be found 314 to be absent if an above-threshold number of intervals (e.g., one, two, or more) elapse without receiving any heartbeat message.
- the global license server 130 may instruct 316 the scheduling component 128 to expire the temporary license last received by the scheduling component. Instructing 316 the scheduling component 128 to expire the temporary license may include transmitting the instruction to the host executing the scheduling component 128. If the scheduling component 128 is disabled or otherwise isolated from the global license server 130 the instruction from step 316 may not be received. Step 316 may additionally or alternatively include providing the instruction in response to the scheduling component 128 making contact with the global license server 130 at some point after the heartbeat is found 314 to be absent.
- the method 300a may include adding 318 the host identifier to the blacklist 204 such that acquisition of additional temporary licenses is no longer permitted for the host identifier or an entity associated with the host identifier.
- Adding 318 the host identifier to the blacklist 204 may be subject to one or more criteria in addition to finding 314 the heartbeat to be absent. For example, if the heartbeat is found 314 to be absent, a strike may be recorded for the host identifier. If, a predefined number, e g. 2, 3, 4 or some other number, of strikes are accumulated for a host identifier, then the host identifier may be added 318 to the blacklist 204.
- Fig. 3B illustrates a method 300b that may be executed by the scheduling component 128 with respect to a host having a corresponding host identifier that executes the managed software.
- the scheduling component 128 may execute on the host or on some other computing device connected to the host by a network.
- the scheduling component 128 may perform the method 300b in cooperation with the global license server 130.
- the scheduling component 128 receives 320 the temporary license transmitted to the scheduling component 128 by the global license server 130 at step 308 of the method 300a. In response to receiving 320 the temporary license, the scheduling component 128 enables 322 execution of the managed software on the host. Enabling 322 execution may include enabling execution of a number of instances of the managed software specified in the temporary license. Enabling 322 execution may include enabling execution the managed software to manage a number of containers, hosts, or other entities as specified in the temporary license.
- Enabling and disabling execution of the managed software may be performed using any approach known in the art for enabling or disabling access to software.
- interfaces through which commands are input may be configured to receive commands only when enabled to do so in response to instructions from the scheduling component 128.
- One or more components of the managed software may be configured only to function upon receiving a heartbeat or other signal from the scheduling component 128. Any approach for enabling or prohibiting function of a software component on an ongoing basis may be used.
- the scheduling component 128 may begin sending 324 heartbeat messages with respect to the host to the global license server at an interval as described above.
- the scheduling component 128 may be configured to send the heartbeat messages when the scheduling component 128 is functioning after receiving the temporary license.
- the scheduling component 128 may be configured to suppress the heartbeat message in response to detecting actions intended to circumvent access controls of the scheduling component 128, such as manipulating a clock on one or more hosts executing the scheduling component 128 or the managed software.
- the scheduling component 128 Upon determining 326 that the temporary license has expired or is about to expire, e.g., is within one hour, one day, or some other time period from expiration, the scheduling component 128 requests 328 a new temporary license from the global license server 130. If the new temporary license is found 330 to have been received, then processing continues at step 322 with execution of the managed software being re-enabled or remaining enabled until the expiration of the new temporary license.
- execution of the managed software is disabled 332.
- Execution of the managed software may be disabled 332 upon expiration of the temporary license either with or without some grace period beyond the time of expiration of the temporary license.
- the scheduling component 128 will also disable 332 execution of the managed software and expire the temporary license regardless of the expiration date of the temporary license when instructed to do so at step 316 of the method 300a.
- Fig. 4 is a block diagram illustrating an example computing device 400.
- Computing device 400 may be used to perform various procedures, such as those discussed herein.
- the servers 102, orchestrator 106, workflow orchestrator 122, cloud computing platform 104, scheduling component 128, and global license server 130 may each be implemented using one or more computing devices 400.
- the orchestrator 106, and workflow orchestrator 122, and scheduling component 128 may be implemented on different computing devices 400 or a single computing device 400 may execute two or more of the orchestrator 106, workflow orchestrator 122, and scheduling component 128.
- Computing device 400 includes one or more processor(s) 402, one or more memory device(s) 404, one or more interface(s) 406, one or more mass storage device(s) 408, one or more Input/output (I/O) device(s) 410, and a display device 430 all of which are coupled to a bus 412.
- Processor(s) 402 include one or more processors or controllers that execute instructions stored in memory device(s) 404 and/or mass storage device(s) 408.
- Processor(s) 402 may also include various types of computer-readable media, such as cache memory.
- Memory device(s) 404 include various computer-readable media, such as volatile memory (e.g., random access memory (RAM) 414) and/or nonvolatile memory (e.g., read-only memory (ROM) 416). Memory device(s) 404 may also include rewritable ROM, such as Flash memory.
- volatile memory e.g., random access memory (RAM) 41
- ROM read-only memory
- Memory device(s) 404 may also include rewritable ROM, such as Flash memory.
- Mass storage device(s) 408 include various computer readable media, such as magnetic tapes, magnetic disks, optical disks, solid-state memory (e.g., Flash memory), and so forth. As shown in Fig. 4, a particular mass storage device is a hard disk drive 424. Various drives may also be included in mass storage device(s) 408 to enable reading from and/or writing to the various computer readable media. Mass storage device(s) 408 include removable media 426 and/or non-removable media.
- I/O device(s) 410 include various devices that allow data and/or other information to be input to or retrieved from computing device 400.
- Example VO device(s) 410 include cursor control devices, keyboards, keypads, microphones, monitors or other display devices, speakers, printers, network interface cards, modems, lenses, CCDs or other image capture devices, and the like.
- Display device 430 includes any type of device capable of displaying information to one or more users of computing device 400. Examples of display device 430 include a monitor, display terminal, video projection device, and the like.
- Interface(s) 406 include various interfaces that allow computing device 400 to interact with other systems, devices, or computing environments.
- Example interface(s) 406 include any number of different network interfaces 420, such as interfaces to local area networks (LANs), wide area networks (WANs), wireless networks, and the Internet.
- Other interface(s) include user interface 418 and peripheral device interface 422.
- the interface(s) 406 may also include one or more peripheral interfaces such as interfaces for printers, pointing devices (mice, track pad, etc.), keyboards, and the like.
- Bus 412 allows processor(s) 402, memory device(s) 404, interface(s) 406, mass storage device(s) 408, I/O device(s) 410, and display device 430 to communicate with one another, as well as other devices or components coupled to bus 412.
- Bus 412 represents one or more of several types of bus structures, such as a system bus, PCI bus, IEEE 1394 bus, USB bus, and so forth.
- programs and other executable program components are shown herein as discrete blocks, although it is understood that such programs and components may reside at various times in different storage components of computing device 400, and are executed by processor(s) 402.
- the systems and procedures described herein can be implemented in hardware, or a combination of hardware, software, and/or firmware.
- one or more application specific integrated circuits (ASICs) can be programmed to carry out one or more of the systems and procedures described herein.
- Implementations of the systems, devices, and methods disclosed herein may comprise or utilize a special purpose or general-purpose computer including computer hardware, such as, for example, one or more processors and system memory, as discussed herein. Implementations within the scope of the present disclosure may also include physical and other computer-readable media for carrying or storing computer-executable instructions and/or data structures. Such computer-readable media can be any available media that can be accessed by a general purpose or special purpose computer system. Computer-readable media that store computer-executable instructions are computer storage media (devices). Computer-readable media that carry computerexecutable instructions are transmission media. Thus, by way of example, and not limitation, implementations of the disclosure can comprise at least two distinctly different kinds of computer-readable media: computer storage media (devices) and transmission media.
- Computer storage media includes RAM, ROM, EEPROM, CD-
- ROM read only memory
- SSDs solid state drives
- PCM phase-change memory
- other types of memory other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store desired program code means in the form of computer-executable instructions or data structures and which can be accessed by a general purpose or special purpose computer.
- An implementation of the devices, systems, and methods disclosed herein may communicate over a computer network.
- a “network” is defined as one or more data links that enable the transport of electronic data between computer systems and/or modules and/or other electronic devices.
- Transmissions media can include a network and/or data links, which can be used to carry desired program code means in the form of computerexecutable instructions or data structures and which can be accessed by a general purpose or special purpose computer. Combinations of the above should also be included within the scope of computer-readable media.
- Computer-executable instructions comprise, for example, instructions and data which, when executed at a processor, cause a general purpose computer, special purpose computer, or special purpose processing device to perform a certain function or group of functions.
- the computer executable instructions may be, for example, binaries, intermediate format instructions such as assembly language, or even source code.
- the disclosure may be practiced in network computing environments with many types of computer system configurations, including, an in-dash vehicle computer, personal computers, desktop computers, laptop computers, message processors, hand-held devices, multi-processor systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframe computers, mobile telephones, PDAs, tablets, pagers, routers, switches, various storage devices, and the like.
- the disclosure may also be practiced in distributed system environments where local and remote computer systems, which are linked (either by hardwired data links, wireless data links, or by a combination of hardwired and wireless data links) through a network, both perform tasks.
- program modules may be located in both local and remote memory storage devices.
- ASICs application specific integrated circuits
- sensor embodiments discussed above may comprise computer hardware, software, firmware, or any combination thereof to perform at least a portion of their functions.
- At least some embodiments of the disclosure have been directed to computer program products comprising such logic (e.g., in the form of software) stored on any computer useable medium.
- Such software when executed in one or more data processing devices, causes a device to operate as described herein.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
Description
Claims
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/US2022/052994 WO2024129084A1 (en) | 2022-12-15 | 2022-12-15 | Software license enforcement |
| US18/041,781 US20250298868A1 (en) | 2022-12-15 | 2022-12-15 | Software License Enforcement |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/US2022/052994 WO2024129084A1 (en) | 2022-12-15 | 2022-12-15 | Software license enforcement |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2024129084A1 true WO2024129084A1 (en) | 2024-06-20 |
Family
ID=91485446
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/US2022/052994 Ceased WO2024129084A1 (en) | 2022-12-15 | 2022-12-15 | Software license enforcement |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US20250298868A1 (en) |
| WO (1) | WO2024129084A1 (en) |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20140068041A1 (en) * | 2012-09-06 | 2014-03-06 | Eric T. Obligacion | Team processing using dynamic licenses |
| US20210223923A1 (en) * | 2020-01-20 | 2021-07-22 | Oracle International Corporation | User interface techniques for an infrastructure orchestration service |
-
2022
- 2022-12-15 US US18/041,781 patent/US20250298868A1/en active Pending
- 2022-12-15 WO PCT/US2022/052994 patent/WO2024129084A1/en not_active Ceased
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20140068041A1 (en) * | 2012-09-06 | 2014-03-06 | Eric T. Obligacion | Team processing using dynamic licenses |
| US20210223923A1 (en) * | 2020-01-20 | 2021-07-22 | Oracle International Corporation | User interface techniques for an infrastructure orchestration service |
Also Published As
| Publication number | Publication date |
|---|---|
| US20250298868A1 (en) | 2025-09-25 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP7744060B2 (en) | Method and apparatus for instantiating an edge application server | |
| EP3920562B1 (en) | Methods and system for performing charging processing on network slice client, and related devices | |
| EP3602373A1 (en) | Attribute-controlled malware detection | |
| US20130142043A1 (en) | Quality of service application controller and user equipment application profiler | |
| US20170134592A1 (en) | Bandwidth monitoring for data plans | |
| CN110196722B (en) | Cloud host batch management method, system, equipment and storage medium | |
| US9160790B1 (en) | Methods and systems for determining and controlling network data usage at the application and feature level | |
| CN111212134A (en) | Request message processing method and device, edge computing system and electronic equipment | |
| MXPA05000847A (en) | Architecture for controlling access to a service by concurrent clients. | |
| US10425475B2 (en) | Distributed data management | |
| US20170033980A1 (en) | Agent manager for distributed transaction monitoring system | |
| CN110677475A (en) | Micro-service processing method, device, equipment and storage medium | |
| CN108093036B (en) | A method and device for acquiring resources | |
| CN115499432A (en) | Home terminal computing power resource management system and computing power resource scheduling method | |
| CN107026879A (en) | A kind of data cache method and background application system | |
| CN108259188A (en) | Data service ensures processing method, device and server | |
| US20250298868A1 (en) | Software License Enforcement | |
| US11546424B2 (en) | System and method for migrating an agent server to an agent client device | |
| US10827079B1 (en) | Methods and systems for reducing data traffic flow between a network and an online charging system | |
| US20250298897A1 (en) | Security Scan With Backup | |
| JP6674092B2 (en) | Data management program, data management device, and data management method | |
| US20250291644A1 (en) | Allocating Dedicated Shared CPU | |
| US11853560B2 (en) | Conditional role decision based on source environments | |
| WO2024147822A1 (en) | Fractional cpu allocation | |
| US20250291770A1 (en) | Seamless NFS Server Pod Addition |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| WWE | Wipo information: entry into national phase |
Ref document number: 18041781 Country of ref document: US |
|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 22968713 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| WWP | Wipo information: published in national office |
Ref document number: 18041781 Country of ref document: US |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 22968713 Country of ref document: EP Kind code of ref document: A1 |