Managing remote resource capabilities and usage

By implementing a method on a remote server, using the association of geographical areas with topics of interest, combining the traffic and trends of social media websites, predicting future resource requirements, and dynamically expanding hardware and software resources, the problem of difficult to effectively manage remote resource capacity and use in the existing technology is solved, and effective response to network traffic peaks is achieved.

JP7655650B2Active Publication Date: 2025-04-02INTERNATIONAL BUSINESS MACHINE CORPORATION
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
JP2022554599
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-05-14
Filing Date
2021-05-11
Publication Date
2025-04-02
Estimated Expiration
2041-05-11

AI Technical Summary

Technical Problem

The prior art is difficult to effectively manage the capacity and use of remote resources, especially when dealing with social media website traffic and trends, and it is difficult to predict and respond to the peak demand for network traffic.

Method used

By implementing a method on a remote server, leveraging the association of geographic regions with topics of interest, combining traffic and trends on social media sites, predict future resource requirements, and by dynamically extending hardware and software resources, ensuring that the system can cope with traffic spikes.

Benefits of technology

It realizes accurate management of remote resource capacity and usage, can predict and respond to peak network traffic requirements, and ensures that the system operates stably without downtime.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007655650000005
    Figure 0007655650000005
  • Figure 0007655650000006
    Figure 0007655650000006
  • Figure 0007655650000007
    Figure 0007655650000007
Patent Text Reader

Abstract

A method, system, and program product are provided for implementing remote resource capacity and usage optimization. The method includes determining an association between social media website traffic and trends associated with the use of remote hardware and software resources and related topics of interest for a particular geographic region. Current and historical software application downloads are tracked for social media website traffic and trends to detect currently consumed capacity of the remote hardware and software resources for the particular geographic region. Future resource demands are determined in relation to currently used capacity of the remote hardware and software resources, and data indicative of current and historical software application downloads is stored in a database. Overall system capacity to accommodate region-specific demand spikes associated with regional web traffic is determined, and hardware and software groups are enabled to increase overall system capacity.
Need to check novelty before this filing date? Find Prior Art

Description

[Background technology]

[0001] The present invention relates generally to remote management of resource capacity and usage, and more particularly to methods and related systems for improving software and server technologies related to tracking software application downloads, remote hardware and software resource capacity detection, determining future resource requirements, and determining system capabilities to resolve spikes in web traffic demand. Summary of the Invention

[0002] A first aspect of the present invention provides a method for optimizing remote resource capacity and usage, the method including: determining, by a processor of a remote server executing remote media discovery code, an association between a particular geographic region and related topics of interest for social media website traffic and trends associated with usage of remote hardware and software resources; tracking, by the processor via a download sensor, current and historical software application downloads for the social media website traffic and trends; detecting, by the processor via a plurality of sensors, currently consumed capacity of the remote hardware and software resources for the particular geographic region; determining, by the processor, future resource requirements in relation to the currently used capacity of the remote hardware and software resources; storing, by the processor, data indicative of the current and historical software application downloads and the future resource requirements in a database; determining, by the processor, overall system capacity to enable a region specific demand spike associated with regional web traffic based on analysis of the data; and enabling, by the processor, hardware and software groups to increase the overall system capacity.

[0003] A second aspect of the present invention is a computer program product comprising a computer readable hardware storage device storing computer readable program code, the computer readable program code comprising algorithms which, when executed by a processor of a remote server device, implement a method of optimizing remote resource capacity and usage, the method comprising: determining, by the processor of the remote server executing remote media discovery code, associations of social media website traffic and trends associated with usage of remote hardware and software resources with particular geographical areas and associated topics of interest; determining, by the processor via a download sensor, current and historical software application statistics for the social media website traffic and trends; tracking downloads; detecting, by the processor via a plurality of sensors, currently consumed capacity of the remote hardware and software resources for the particular geographic region; determining, by the processor, future resource requirements related to the currently used capacity of the remote hardware and software resources; storing, by the processor, data indicative of the current and historical software application downloads and the future resource requirements in a database; determining, by the processor, an overall system capacity to accommodate regional specific demand spikes associated with regional web traffic based on analysis of the data, and enabling, by the processor, hardware and software groups to increase the overall system capacity.

[0004] A third aspect of the present invention provides a remote server including a processor coupled to a computer readable memory unit, the memory unit including algorithms that, when executed by a processor of the remote server device, implement a method for optimizing remote resource capacity and usage, the method comprising: determining, by the processor of the remote server executing remote media discovery code, an association of social media website traffic and trends associated with usage of remote hardware and software resources with topics of interest associated with a particular geographic region; tracking, by the processor via a download sensor, current and historical software application downloads of the social media website traffic and trends; detecting, by the processor via a number of sensors, currently consumed capacity of the remote hardware and software resources for the particular geographic region; determining, by the processor, future resource requirements related to the currently used capacity of the remote hardware and software resources; storing, by the processor, data indicative of the current and historical software application downloads and the future resource requirements in a database; determining, by the processor, overall system capacity to accommodate region-specific demand spikes associated with regional web traffic based on analysis of the data; and enabling, by the processor, hardware and software groups to increase the overall system capacity.

[0005] The present invention advantageously provides a simple method and associated system that allows for precise management of resource capacity and usage. [Brief description of the drawings]

[0006] [Figure 1]FIG. 1 illustrates a system for improving software and server technology related to tracking software application downloads, detecting capabilities of remote hardware and software resources, determining future resource requirements, and determining system capabilities to resolve spikes in web traffic requirements in accordance with an embodiment of the present invention. [Diagram 2] FIG. 2 illustrates an algorithm detailing a process flow enabled by the system of FIG. 1 for improving software and server technologies related to tracking software application downloads, detecting capabilities of remote hardware and software resources, determining future resource requirements, and determining system capabilities for resolving spikes in web traffic demand, in accordance with an embodiment of the present invention. [Diagram 3] FIG. 3 shows a diagram of the internal structure of the circuitry / software of FIG. 1 according to an embodiment of the present invention. [Figure 4] FIG. 4 illustrates a system for enabling a process for forecasting geographic specific capacity requirements that impact hardware and software resource usage for cloud computing in accordance with an embodiment of the present invention. [Figure 5A] FIG. 5A illustrates an algorithm detailing a process flow enabled by the SMD of FIG. 4 in accordance with an embodiment of the present invention. [Figure 5B] FIG. 5B shows an algorithm detailing a process flow enabled by the ADT of FIG. 4 in accordance with an embodiment of the present invention. [Figure 5C] FIG. 5C illustrates an algorithm detailing a process flow enabled by the HCD of FIG. 4 in accordance with an embodiment of the present invention. [Figure 5D] FIG. 5D illustrates an algorithm detailing a process flow enabled by the CSP engine of FIG. 4 in accordance with an embodiment of the present invention. [Figure 6]FIG. 6 illustrates a computer system used by the system of FIG. 1 to improve software and server techniques relating to tracking software application downloads, detecting capabilities of remote hardware and software resources, determining future resource requirements, and determining system capabilities for resolving spikes in web traffic requirements in accordance with an embodiment of the present invention. [Figure 7] FIG. 7 illustrates a cloud computing environment according to an embodiment of the present invention. [Figure 8] FIG. 8 illustrates a set of functional abstraction layers provided by a cloud computing environment in accordance with an embodiment of the present invention. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0007] FIG. 1 illustrates a system 100 for improving software and server technologies related to tracking software application downloads 139, detecting capabilities of remote hardware and software resources 122, determining future resource requirements, and determining system capabilities to resolve web traffic demand spikes 123, according to an embodiment of the present invention. A typical cloud computing system is used to manage different resources without maintenance. An entity enables a particular resource based on the associated demand, so that the associated resource allowance is only requested based on typical usage. Similarly, an entity running a heavy load on a cloud infrastructure can attempt to scale resources when required, so that the associated services can run seamlessly without any downtime. Additionally, server applications associated with resources may be required to be located within a geography close to the incoming requests. Thus, the system 100 enables a process to predict external geography specific load factors and proactively scale hardware and software resources before the actual load functions are enabled. For example, an e-commerce company may implement seasonal (e.g., holiday, season, etc.) promotional sales that may result in higher usage / conversion of hardware and software resource usage. The higher rate of usage / conversion results in unknown resource requirements. Thus, system 100 enables the process of determining future resource requirements in conjunction with selecting and managing the hardware and software resources that will be required to enable operation of the hardware and software during a particular seasonal promotional sale.

[0008] The system 100 of FIG. 1 includes a remote server 138 (i.e., a specialized hardware device), a software application download 139, a database 127, and remote hardware and software resources 122 interconnected through a network 117. The remote server 138 may include, among other things, a computing device, a dedicated device, server hardware, and the like. The remote server 138 may be Bluetooth enabled to provide connectivity with any type of system. The remote server 138 includes specialized circuitry / software 125 (which may include specialized software), sensors 110, software 141, and a GUI 142. The sensors 110 may include any type of internal or external sensor, including, among other things, an ultrasonic 3D sensor module, an optical sensor, a video search device, an audio search device, a humidity sensor, a voltage sensor, a keyboard, a mouse, a touch screen, a temperature sensor, and the like. Application download 139 includes any type of software download necessary to enable system 100 to modify system capabilities to resolve spikes in web traffic demand 123. Remote hardware and software resources 122 include any type of hardware or software or both (e.g., servers, controllers, memory structures, processors, etc.) related to modifying system capabilities to resolve spikes in web traffic demand 123 associated with a particular web event. Remote server 138 may include an embedded device. An embedded device is defined herein as a dedicated device or computer that includes a combination of computer hardware and software (internal fixed capabilities or programmable) specifically designed to perform a specialized function. A programmable embedded computer or device may include specialized programming interfaces.In one embodiment, remote server 138 may include specialized (non-general purpose) hardware and circuitry (i.e., specialized, individual, non-general purpose analog, digital, and logic-based circuitry) for performing the processes described with respect to FIGS. 1-6 (independently or in combination), respectively. The specialized, individual, non-general purpose analog, digital, and logic-based circuitry may include dedicated, specifically designed components (e.g., specialized integrated circuits such as application specific integrated circuits (ASICs) designed solely for implementing automated processes for tracking software application downloads, detecting capabilities of remote hardware and software resources, determining future resource requirements, and resolving web traffic demand spikes 123). Network 117 may include any type of network, including 5G telecommunications networks, local area networks (LANs), wide area networks (WANs), the Internet, wireless networks, among others. Alternatively, network 117 may include application programming interfaces (APIs).

[0009] The system 100 enables a process for predicting geographic / region specific capacity demands that impact resource usage related to cloud-based social media analytics and application download trends. Similarly, the process includes determining region specific spikes in resource demand. The system 100 enables the following functions for determining system capacity to resolve spikes 123 in web traffic demand: 1. Using a cloud-based social media discovery service (SMD) to calculate interest scores for specific topics per geographic area based on mass trends for topics in social media website traffic. 2. Using the Application Download Tracker (ADT) to calculate an ADT score based on application (software) download trends, previous application download scores retrieved from a historical database, and the number of applications downloaded from the application data store. 3. Using Historical Forecast Data (HCD) by storing historical data relating to each downloaded event in combination with the actual consumed capacity within each geographic region. Additionally, historical interest scores and corresponding resource demand forecasts are stored. 4. Using a cognitive scale prediction engine to determine capacity factors based on SMD scores, ADT scores, actual consumed capacity for previous events within each geographic region and corresponding hardware and software resource requirement forecasts.

[0010] FIG. 2 illustrates an algorithm detailing a process flow enabled by the system 100 of FIG. 1 for improving software and server technologies related to tracking software application downloads, remote hardware and software resource capability detection, determining future resource requirements, and determining system capabilities for resolving spikes in web traffic requirements, according to an embodiment of the present invention. Each step in the algorithm of FIG. 2 can be enabled and performed in any order by computer processor(s) executing computer code. Additionally, each step in the algorithm of FIG. 2 can be enabled and performed in a combination of the remote server 138 and the remote hardware and software resources 122. At step 200, an association with a particular geographic region is determined. Additionally, this association is determined with respect to interest related to social media website traffic and topics associated with the use of the remote hardware and software resources. Determining the association can include: 1. To find website data from multiple social media websites related to social media website traffic and trends. 2. Aggregating website data. 3. Generating a region score (based on aggregated data generated in response to aggregating the website data) regarding remote hardware and software resource usage for a particular geographic region.

[0011] At step 201, current and historical software downloads are tracked (via download sensors) for social media website traffic and trends. Tracking current and historical software application downloads can include: 1. Discover the total number of current and historical software application downloads. 2. Determining active user trends regarding users related to current and historical software application downloads (based on an analysis of total download counts). 3. Determining additional trends relating to large numbers of users across a particular geographic area (based on analysis of active user trends) detected in connection with previous download events performed via remote hardware and software resources. 4. Generating an Application Download Tracker (ADT) score related to the previously determined ADT scores for current active users, total downloads, and total new downloads of current and historical software application downloads.

[0012] In step 202, currently consumed capacity of remote hardware and software resources is detected (via multiple sensors) for a particular geographic region. In step 203, future resource requirements related to the currently consumed capacity of the remote hardware and software resources are determined. In step 204, data representing current and historical software application downloads and future resource requirements is stored in a database. Storing may include: 1. Storing data regarding all download events performed via remote hardware and software resources. 2. Storing consumption data relating to the currently consumed capacity of remote hardware and software resources for a particular geographical area. 3. Storing historical interest scores associated with predictions about future resource requirements.

[0013] At step 208, a total system capacity to accommodate region-specific demand spikes associated with regional web traffic is determined based on the analysis of the data from step 204. Additionally, a modification factor associated with capacity requirements for the total system capacity for the particular geographic region is determined. Determining the total system capacity can include determining a capacity factor as a function of the region score for the ADT score and the modification factor. The total system capacity can include cloud storage capacity.

[0014] In step 210, a specified group of hardware and software resources is enabled to increase overall system capacity.

[0015] FIG. 3 shows a diagram of the internal structure of the circuit / software 125 of FIG. 1 according to an embodiment of the present invention. The circuit / software 125 includes a sensor interface module 304, a tracking and detection module 310, an analysis module 308, a resource enable module 314, and a communication controller 302. The sensor interface module 304 includes specialized hardware and software for controlling all functions associated with the sensor 110 of FIG. 1. The tracking and detection module 310 includes specialized hardware and software for controlling all functions associated with the tracking and detection process for implementing the process described for the algorithm of FIG. 2. The analysis module 308 includes specialized hardware and software for controlling all functions for the analysis step of FIG. 2. The resource enable module 314 includes specialized hardware and software for controlling all functions associated with enabling the hardware and software resources according to the algorithm of FIG. 2. The communications controller 302 is enabled to control all communications between the sensor interface module 304 , the tracking and detection module 310 , the analysis module 308 , and the resource enable module 314 .

[0016] 4 illustrates a system 400 for enabling a process for predicting geographically specific capacity demands that affect hardware and software resource usage for cloud computing according to an embodiment of the present invention. The geographically specific capacity demands are predicted based on social media analytics and application download trends to determine area specific spikes in resource demand. The system 400 includes a cognitive server prediction (CSP) engine 401 (i.e., specialized hardware and software), a cloud-based media discovery service (SMD) 402, an application download tracker (ADT) 404, and a historical capacity prediction (HCD) repository 406 connected through a network 415.

[0017] The SMD 402 is configured to generate an interest score (IS) for a particular web topic related to the network 412. For example, an IS can be generated for a particular application related to a musical performance, a particular sales event, a sporting event, etc. Additionally, the top trends related to the event are identified.

[0018] The ADT 404 is configured to track application download trends for the application 410. Application store analytics code can be executed to estimate the application download trends.

[0019] The HCD repository 406 is configured to store historical performance data for each event.

[0020] The CSP engine 401 is configured to analyze inputs from the SMD 402, the ADT 404, and the HCD repository 406. The analysis provides a determination of domain, time period, and cloud capacity requirements 408.

[0021] FIG. 5A shows an algorithm detailing a process flow enabled by the SMD 402 of FIG. 4 according to an embodiment of the present invention. In step 501, input data is retrieved from social media channels. In step 502, trends related to the application programming interfaces (APIs) of the social media channels are identified. In step 504, trends are identified for each identified region based on the configuration weights retrieved for each media channel in step 503. In step 505, all information from the previous steps is aggregated to generate an SMD score per region. For example, for a sporting event streamed on an application, the SMD 402 retrieves a number of similarities from social media sources per each geographic region. Each social media source is associated with a different weight. Based on the weights and the number of hits from each social media source, an interest score (SMD) is generated for each geographic region.

[0022] FIG. 5B shows an algorithm detailing a process flow enabled by the ADT 404 of FIG. 4 according to an embodiment of the present invention. In step 507, the total number of downloads of applications retrieved from the application store is provided. In step 508, a number of new download sessions is calculated in relation to the active user trend. For example, the number of active users since the last download event may have increased by 30%. Additionally, a number of user trends across areas belonging to previous events can be derived. In step 509, an ADT score is calculated for the historical data retrieved in step 510 and the number of downloads retrieved in step 511. The ADT score can be calculated as follows:

[0023]

number

[0024] In step 512, the ADT score is output to the GUI.

[0025] 5C shows an algorithm detailing a process flow enabled by HCD 406 of FIG. 4 in accordance with an embodiment of the present invention. In step 515, a correction factor is calculated for each geographic region as follows:

[0026]

number

[0027] The correction factors are calculated based on data retrieved from database 518, which includes historical interest score data, historical output from the ADT score calculator, predicted output for each historical event, and actual performance for each domain event. At step 516, the correction factors are output to the GUI.

[0028] FIG. 5D shows an algorithm detailing a process flow enabled by the CSP engine 401 of FIG. 4 according to an embodiment of the present invention. The CSP engine 401 is configured to learn (over time) and generate domain-specific cloud capacity requests. The CSP engine 401 sends (social media score) input 520 (from the SMD 402 of FIG. 4), input 522 (from the ADT 404 of FIG. 4) and (corrected) input 524 from the capacity determination component to the scale prediction engine 528. The inputs 520, 522 and 524 are used to generate the actual capacity required within each geographical region to provide the network load. The input 522 is used by the ADT 404 to present the pool of all active users as a score or percentage. The input 520 is used by the SMD 402 to filter the number of interested people. The input 524 is used to generate the actual capacity of previous events for further predictions. The error rate may be applied to the capacity determination results to generate a revised capacity factor per geographic region. The capacity factor is generated as follows:

[0029]

number

[0030] The capacity factors are used in step 530 to generate the capacity required within each geographic region to service the load. Data representing the required capacity is stored in a historical capacity data (HDS) system 534.

[0031] The following implementation example relating to resource capacity optimization illustrates a process involving a mobile application that allows for live streaming of an event. The mobile application can be configured for discussions, notifications, and live streaming. The process begins by retrieving previously downloaded event data for an event. For example, the data for area A for a previous event contains the following values: 1.SMD=3.66 2. ADT=5000 3. Correction factor = 1

[0032] Therefore, Capacity Factor = 18300. The Capacity Factor is analyzed to determine the current number of server nodes (i.e., 19) required for Region A. Additionally, it is determined that the actual number of nodes required for the previous event was 10.

[0033] The SMD value is calculated by searching for trends / similarities for the live streaming event from different social media channels and an interest score is calculated based on the number of similarities / interests per geographical area. For example, a first social networking website may receive 1000 hits and the weighting given to the first social networking website by the company includes 8 out of 10. Similarly, a second social networking website may receive 2000 hits with a weighting of 4 applied and a third social networking website may receive 3000 hits with a weighting of 2 applied. Hence, the SMD score for the current event is = 3.66.

[0034] The ADT value is calculated by tracking application downloads for a mobile application obtained from APIs related to the Play Store. First, analytics data from a social networking website indicates an increase in active users for this application, and based on the above two data sets and previous download scores, the ADT score is generated as follows:

[0035] It is determined that the total number of all downloads for the mobile application is 10000 and the number of active users = 5000. The total number of new downloads over an additional 3 months is 3 months = 2000. Similarly, previous ADT value = 5000 + 2000 * (5000 / 10000) = 6000, hence the new ADT value = 6000.

[0036] The correction factor includes a prediction of the capacity used for the previous download event and is stored in the HRD database. Data identifying the actual server used is additionally stored in the HRD database. Thus, a correction factor for the prediction is generated as follows:

[0037] The previously predicted capacity factor = 19, and the actual capacity used = 10, and therefore the correction factor = 10 / 19 = 0.52.

[0038] The predicted performance factors are provided to the system as a learning tool so that the system improves over time. Performance factors for the current event are predicted for each domain based on the values ​​of: SMD score, ADT score, and correction factors.

[0039] The above outputs can be used as instruction inputs to assign capabilities to each domain for the upcoming event. The outputs are additionally fed to the HRD for further learning and modification for future events.

[0040]

number

[0041] The resulting predictive capacity contains 12 nodes.

[0042] FIG. 6 illustrates a computer system 90 (e.g., remote server 138 or remote hardware and software resource 122 or both of FIG. 1) used by or included in the system of FIG. 1 for improving software and server techniques related to tracking software application downloads, remote hardware and software resource capability detection, determining future resource requirements, and determining system capabilities for resolving spikes in web traffic requirements in accordance with an embodiment of the present invention.

[0043] Aspects of the present disclosure may take the form of entirely hardware embodiments, entirely software embodiments (such as firmware, persistent software, microcode, etc.), or embodiments that combine software and hardware aspects, all of which are referred to as a "circuit," "module," or "system."

[0044] The present disclosure may be a system, method, or computer program product, or a combination thereof. The computer program product may include a computer-readable storage medium (or media) having computer-readable program instructions thereon for causing a processor to execute aspects of the present disclosure.

[0045] A computer readable recording medium may be any tangible device capable of holding and storing instructions for use by an instruction execution device. A computer readable recording medium may be, for example, but not limited to, an electronic recording device, a magnetic recording device, an optical recording device, an electro-magnetic recording device, a semiconductor recording device, or any suitable combination of the above. More specific examples of computer readable recording media include the following: portable computer disks, hard disks, random access memories (RAM), read-only memories (ROM), erasable programmable read-only memories (EPROMs or flash memories), static random access memories (SRAMs), portable compact disk read-only memories (CD-ROMs), digital versatile disks (DVDs), memory sticks, floppy disks, punch cards, or mechanically encoded devices having protruding structures within grooves that record instructions, and any suitable combinations thereof. As used herein, a computer-readable recording medium is not to be construed as a transitory signal per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves such as wave guides or other communications media (e.g., light pulses passing through fiber optic cable), or electrical signals communicated through wires.

[0046] The computer programs described herein can be downloaded from a computer-readable recording medium into each computing / processing device, or can be downloaded to an external computer or external recording device via a network, such as the Internet, a local area network, a wide area network, or a wireless network, and combinations thereof. The network can include copper cables, fiber optics, wireless networks, routers, firewalls, switches, gateway computers, and edge servers, and combinations thereof. A network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and transfers the computer-readable program instructions into a computer-readable recording medium in each computing / processing device for storage.

[0047] The computer readable program instructions for carrying out the operations of the present invention can be either source code or object code written in any combination of programming languages, including assembler instructions, instruction set architecture (ISA) instructions, machine language instructions, machine dependent instructions, microcode, firmware instructions, state setting data, configuration data for an integrated circuit, or one or more procedural programming languages, such as Smalltalk®, object oriented programming languages ​​such as C++, the “C” programming language, or similar programming languages. The computer readable program instructions can be executed entirely on the user computer, partially on the user computer as a stand-alone software package, partially on the user computer and partially on a remote computer, or entirely on a remote computer or server. In the latter scenario, the remote computer can be connected to the user computer through any type of network, including a local area network (LAN), a wide area network (WAN), or the connection can be to an external computer (e.g., through an Internet service provider). In some embodiments, computer readable program instructions may be executed by electrical circuitry including, for example, a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA), and state information of the computer readable program instructions may be used to personalize the electrical circuitry to perform features of the present invention.

[0048] Aspects of the invention described herein have been described with reference to flowchart instructions and / or block diagrams of methods, apparatus (systems), and computer readable storage media and computer program products according to embodiments of the invention. It will be understood that any combination of flowchart illustrations and / or block diagrams and / or blocks in flowchart illustrations and / or block diagrams can be implemented by computer readable program instructions.

[0049] These computer readable program instructions can be provided to a general purpose computer, a special purpose computer, or other processor or other programmable data processing device to produce a machine, which when executed by the processor of the computer or other programmable data processing device produces means for implementing the functions / operations specified in the block or blocks of the flowcharts and block diagrams, or combinations thereof. These computer readable program instructions that direct a computer, programmable data processing device, and other device, or combinations thereof, to function in a particular manner can also be stored on a computer readable recording medium, and the computer readable recording medium having instructions stored therein constitutes an article of manufacture containing instructions that implement the functional / operational features specified in the block or blocks of the flowcharts and block diagrams, or combinations thereof.

[0050] The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device and cause a computer implemented process to perform a series of operational steps on the computer, other programmable apparatus, or other device to implement the functions / acts specified in the blocks of the flowcharts and block diagrams or in a combination thereof.

[0051] The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and possible implementation operations of systems, methods, and computer programs according to various embodiments of the present invention. In this respect, the flowcharts or block diagrams may represent modules, segments, or portions of instructions, which include one or more executable instructions for implementing a particular logical function(s) (or functions). In some alternative implementations, the functions described in the blocks may be performed other than as illustrated. For example, two blocks shown in succession may be accomplished in one step, may be performed simultaneously, substantially simultaneously, in a partially or fully overlapping manner, or the blocks may sometimes be performed in reverse order, depending on the functionality involved. It is also indicated that each block of the block diagram or flowchart illustrations or both, and combinations of blocks in the block diagram or flowchart illustrations or both, may be implemented by a special-purpose hardware-based system that performs a particular function or operation or a combination of special-purpose hardware and computer instructions.

[0052] The computer system 90 shown in FIG. 9 includes a processor 91, an input device 92 coupled to the processor 91, an output device 93 coupled to the processor 91, a network device 73 coupled to the processor 91, and memory devices 94, 95 each coupled to the processor 91. The input device 92 may be a keyboard, a mouse, a camera, a touch screen, among others. The output device 93 may be a printer, a plotter, a computer screen, a magnetic tape, a removable disk, a floppy disk, among others. The memory devices 94, 95 may be a hard disk, a floppy disk, a magnetic tape, a compact disk (CD), an optical storage such as a digital video disk (DVD), a dynamic random access memory (DRAM), a read only memory (ROM), among others. The memory device 95 includes computer code 97. Computer code 97 includes algorithms (e.g., the algorithms of FIG. 2) for improving software and server technology related to tracking software application downloads, detecting capabilities of remote hardware and software resources, determining future resource requirements, and determining system capabilities to resolve spikes in web traffic requirements. Processor 91 executes computer code 97. Memory device 94 includes input data 96. Input data 96 includes inputs required by computer code 97. Output device 93 displays output from computer code 97.Either or both of the memory devices 94, 95 (or one or more additional memory devices such as a read only memory (ROM) device or firmware 85) may contain algorithms (e.g., the algorithms of FIG. 2) and may be used as a computer usable medium (or computer readable medium or program recording device) having a computer readable program embodied therein and / or other data stored therein, where the computer readable program code includes computer code 97. In general, the computer program product (or alternatively, article of manufacture) of the computer system 90 may include a computer usable medium (or program recording device). The networking device 73 is a device designed to communicate with other computer systems over networks commonly known as local area networks, wide area networks, campus area networks, and metropolitan area networks, particularly those networks that use physical links such as wired, optical, or wireless using data link protocols such as TCP / IP, UDP, ATM, Frame Relay, etc.

[0053] In some embodiments, rather than being stored to or accessed from a hard drive, optical disk, or other writable, rewritable, or removable hardware memory device 95, the stored computer program code 84 (including, for example, algorithms) may be stored in, or accessed directly by the processor 91 from, a static, non-removable, read-only recording medium, such as a ROM device or firmware 85. Similarly, in some embodiments, the stored computer program code 97 may be stored in, or accessed directly by the processor 91 from, a ROM device or firmware 85, rather than from a more dynamic or removable hardware data storage device 95, such as a hard drive or optical disk.

[0054] Additionally, any of the components of the present invention could be generated, integrated, hosted, maintained, deployed, serviced, etc., by a service supplier offering software and server technologies related to tracking software application downloads, capability detection of remote hardware and software resources, determining future resource requirements, and determining system capabilities for resolving spikes in web traffic requirements. Accordingly, the present invention discloses a process for deploying, generating, integrating, hosting, maintaining, or integrating, or combinations thereof, a computing infrastructure, comprising incorporating computer readable code into a computer system 90, wherein the code combined with the computer system 90 enables execution of a process for improving software and server technologies related to tracking software application downloads, capability detection of remote hardware and software resources, determining future resource requirements, and determining system capabilities for resolving spikes in web traffic requirements. In another embodiment, the present invention provides a business method performing the process steps of the present invention on a subscription, advertising, or fee basis, or combinations thereof. That is, a service supplier such as a solutions integrator could offer to enable processes for improving software and server technology related to tracking software application downloads, detecting capabilities of remote hardware and software resources, determining future resource requirements, and determining system capabilities to resolve spikes in web traffic demand. In this case, the service supplier could create, maintain, support, etc., the computer infrastructure that performs the process steps of the invention for one or more customers.In return, the service provider may receive payments from the customer(s) under a subscription or fee agreement, or both, or the service supplier may receive payments from the sale of advertising content to one or more third parties, or any combination thereof.

[0055] Although Figure 6 illustrates computer system 90 as a configuration of hardware and software, those skilled in the art will recognize that any configuration of hardware and software can be used for purposes established in combination with computer system 90 of Figure 6. For example, memory devices 94, 95 can be parts of a single memory device rather than separate memory devices. Cloud Computing Environment

[0056] Although this disclosure includes details about cloud computing, the teachings referenced herein are not limited to a cloud computing environment, but rather the disclosed environment can be implemented in combination with any other type of computing environment now known or developed in the future.

[0057] Cloud computing is a service delivery model for on-demand network access with the convenience of accessing a shared pool of rapidly provisioned and open configurable computing resources (e.g., networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services) with minimal administrative effort or interaction with a service provider. The cloud model can include at least five characteristics, at least three service models, and at least four deployment models.

[0058] Its features are as follows:

[0059] On-Demand Self-Service: Cloud consumers are automatically provisioned with computing power - server time and network storage - on an as-needed basis without the need for human interaction with the service provider.

[0060] Pervasive Network Access: Capabilities are available over the network and accessed through standard mechanisms facilitating use by different thin- and thick-client platforms (eg, mobile phones, laptops, and PDAs).

[0061] Resource Sharing: Using a multi-tenant model, a provider's computing resources are shared to serve multiple consumers, with different physical and virtualized resources dynamically allocated and reallocated as needed. A sense of location independence exists, such that consumers generally have no control or knowledge of the exact location (e.g., country, state, or data center) of the resources provided, but can specify the location at a higher layer of abstraction.

[0062] Rapid Elasticity: Capabilities can be provisioned quickly and elastically, in some cases automatically, to quickly scale out and quickly release to quickly scale in. To the consumer, the capabilities available for provisioning often appear unlimited and can be purchased in any quantity at any time.

[0063] Metered Services: Cloud systems automatically control and optimize resource usage by leveraging metering capabilities at several levels of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts). Resource usage can be monitored, controlled, and reported to provide transparency to both providers and consumers of the services being used.

[0064] The service model is as follows:

[0065] Software as a Service (SaaS): The functionality provided to the consumer is the use of the provider's applications running on a cloud infrastructure. The applications are accessible from a variety of client devices through thin-client interfaces such as web browsers (e.g., web-based email). The consumer does not manage or control the underlying cloud infrastructure, including the network, servers, operating systems, storage, or individual application functionality, except for limited user-specific application configuration settings.

[0066] Platform as a Service (PaaS): The capability offered to a consumer is to deploy applications that the consumer has created or acquired, written using programming languages ​​and tools supported by the provider, onto a cloud infrastructure. The consumer does not manage or control the underlying cloud infrastructure, including networks, servers, operating systems, or storage, but does control the deployed applications and, potentially, the configuration of the application hosting environment.

[0067] Infrastructure as a Service (IaaS): The functionality provided to the consumer is the provision of processing, storage, network, and other basic computing resources onto which the consumer can deploy and run any software, which may include operating systems and applications. The consumer does not manage or control the underlying cloud infrastructure, but has control over the operating systems, storage, deployed applications, and possibly limited control over select networking components (e.g., host firewalls).

[0068] The deployment model is as follows:

[0069] Private Cloud: The cloud infrastructure operates solely for one organization. It can be managed by that organization or a third party and can exist on-premises or off-premises.

[0070] Community Cloud: The cloud infrastructure is shared by several organizations to support a specific community with common interests (e.g., mission, security requirements, policies, and compliance considerations). It can be managed by those organizations or by a third party and can exist on-premises or off-premises.

[0071] Public Cloud: Cloud infrastructure is made available to the public or large industry groups and is owned by organizations that sell cloud services.

[0072] Hybrid Cloud: A cloud infrastructure is a combination of two or more clouds (private, community, or public) that remain unique entities but are bound to each other by standardized or proprietary technologies that allow portability of data and applications (e.g., cloud bursting for load balancing between clouds).

[0073] Cloud computing environments are service-oriented with a focus on statelessness, loose coupling, modularity, and semantic interoperability. At the heart of cloud computing is the infrastructure, which contains multiple interconnected nodes.

[0074] FIG. 7 illustrates an exemplary cloud computing environment 50. As illustrated, the cloud computing environment 50 includes one or more cloud computing nodes 10 with which local computing devices used by cloud consumers, such as a personal digital assistant (PDA) or cellular phone 54A, a desktop computer 54B, a laptop computer 54C, or an automobile computer system 54N, or combinations thereof, communicate. The nodes 10 can communicate with each other. They can be physically or virtually grouped in one or more networks, such as the private, community, public, or hybrid clouds described above, or combinations thereof (not shown). This allows the cloud computing environment 50 to provide an infrastructure, platform, or software-as-a-service for cloud consumers to eliminate the need to maintain resources on local computing devices. It will be understood that the types of computing devices 54A, 54B, 54C, and 54N shown in FIG. 7 are for illustrative purposes only, and that the computing node 10 and cloud computing environment 50 can communicate with any type of computerized device through any type of network or addressable network connection (e.g., a web browser), or both.

[0075] Referring now to Figure 8, there is shown a set of functional abstraction layers provided by cloud computing environment 50 (see Figure 7). It should be understood that the components, layers, and functions shown in Figure 8 are intended to be illustrative only, and that embodiments of the present invention are not limited thereto. As shown, layers and corresponding functions are provided, as described below.

[0076] The hardware and software layer 60 includes hardware and software components. Examples of the hardware components may include a mainframe 61, a plurality of servers based on a RISC (reduced instruction set computer) architecture 62, a plurality of servers 63, a plurality of blade servers 64, a plurality of storage devices 65, and a network and networking components 66. In some embodiments, the software components include network application server software 67 and database software 68.

[0077] The visualization layer 70 provides an abstraction layer from which embodiments of virtual entities, described below; virtual servers 71; virtual storage 72; virtual networks 73, including virtual private networks; virtual applications and operating systems 74; and virtual clients 75.

[0078] In one embodiment, the management layer 80 may provide the following functions: A resource provisioning unit 81 provides dynamic acquisition of computing resources and other resources used to perform tasks within the cloud computing environment. A metering and pricing unit 82 provides cost tracking as resources are used within the cloud computing environment and provides billing or charging for the consumption of these resources. In one embodiment, these resources may include application software licenses. A security unit provides identification and authentication of cloud consumers and tasks as well as protection of data and other resources. A user portal unit 83 provides accessibility to the cloud computing environment and system administrators for consumers. A service level management unit 87 provides allocation and management of cloud computing resources to meet required service levels. A service level agreement (SLA) planning and fulfillment unit 88 provides pre-provisioning and acquisition of cloud computing resources as future requests are required according to SLAs.

[0079] The Workload Layer 101 provides examples of functionality for utilizing a cloud computing environment. Examples of workloads and functionality that can be provided from this layer can include: mapping and navigation 102; software development and lifetime management 103; virtual classroom instruction delivery 133; data analytics processing 134; transaction processing 106; software and server technology improvements 107 related to tracking software application downloads, capability discovery of remote hardware and software resources, determining future resource requirements, and determining system capabilities (system 400 in FIG. 4).

[0080] Although embodiments of the present disclosure have been described for purposes of illustration, many modifications or variations will become apparent to those skilled in the art without departing from the scope and spirit of the disclosure. It is therefore intended that the appended claims cover all such modifications and variations that are within the scope of the invention. What is charged:

Claims

1. A method of optimizing the capacity and usage of remote resources executed by a remote server, said remote server comprising: determining, by a processor of the remote server executing the remote media discovery code, an association of social media web site traffic and trends associated with usage of the remote hardware and software resources with particular geographic regions and related topics of interest; tracking, by the processor via a download sensor, current and historical software application downloads of the social media web site traffic and trends, including determining additional trends related to the number of users traversing the particular geographic region detected as being associated with previous download events performed via the remote hardware and software resources; detecting by said processor via a plurality of sensors a currently consumed capacity of said remote hardware and software resources for said particular geographic region; determining, by said processor, future resource requirements relative to said currently consumed capacity of said remote hardware and software resources; storing, by said processor, data indicative of said current and historical software application downloads and said future resource requirements in a database; determining, by the processor, based on the analysis of the data, system capacity required in the particular geographic region to resolve region-specific spikes in demand related to web traffic in the particular geographic region; and enabling, by said processor, groups of hardware and software according to said system capabilities required in said particular geographic region; A method for performing.

2. The determining the association includes: retrieving website data from a plurality of social media websites related to traffic and trends of said social media websites; aggregating said website data; and generating a region score for the usage of the remote hardware and software resources for the particular geographic region based on aggregated data generated in response to the aggregating; The method of claim 1 , comprising:

3. said tracking said current and historical software application downloads further comprising: detecting a total number of downloads of said current and historical software application downloads; determining active user trends for users associated with the current and historical software application downloads based on the analysis of the total downloads; determining the additional trend related to the number of users traversing the particular geographic region detected as being associated with the previous download events performed via the remote hardware and software resources based on the analysis of the active user trends; generating an Application Download Tracker (ADT) score by associating previously determined ADT scores for current active users, the total number of downloads, and the total number of new downloads of the current and historical software application; The method of claim 2 , comprising:

4. Storing the data includes: storing said data about all download events performed via said remote hardware and software resources; storing consumption data relating to the currently consumed capacity of the remote hardware and software resources for the particular geographic region; Storing historical interest scores associated with predictions for future resource requests. The method of claim 3 , comprising:

5. moreover, Determining a correction factor related to capacity demands for system capacity for said particular geographic region. The method of claim 4 , comprising:

6. The step of determining the system capability comprises: determining a performance factor as a function of said domain scores for said ADT score and said correction factor; The method of claim 5 , comprising:

7. The system capability includes a cloud storage capability. The method according to any one of claims 1 to 6, comprising:

8. moreover, providing at least one support service for at least one of generating, integrating, hosting, maintaining, and deploying computer readable code on the remote server, the code being executed by the processor to implement the determining, tracking, detecting, determining future resource requirements, storing, determining system capabilities, and enabling of the associations. The method according to any one of claims 1 to 7.

9. A computer program executable by a remote server to carry out the method according to claims 1 to 8.

10. A remote server executing a method for optimizing capacity and usage of remote resources, said remote server comprising: determining, by a processor of the remote server executing the remote media discovery code, an association of social media web site traffic and trends associated with usage of the remote hardware and software resources with particular geographic regions and related topics of interest; tracking, by the processor via a download sensor, current and historical software application downloads of the social media web site traffic and trends, including determining additional trends related to the number of users traversing the particular geographic region detected as being associated with previous download events performed via the remote hardware and software resources; detecting by said processor via a plurality of sensors a currently consumed capacity of said remote hardware and software resources for said particular geographic region; determining, by said processor, future resource requirements relative to said currently consumed capacity of said remote hardware and software resources; storing, by said processor, data indicative of said current and historical software application downloads and said future resource requirements in a database; determining, by the processor, based on the analysis of the data, system capacity required in the particular geographic region to resolve region-specific spikes in demand related to web traffic in the particular geographic region; and enabling, by said processor, groups of hardware and software according to said system capabilities required in said particular geographic region; The remote server on which to run.

11. The determining the association includes: retrieving website data from a plurality of social media websites related to traffic and trends of said social media websites; aggregating said website data; and generating a region score for the usage of the remote hardware and software resources for the particular geographic region based on aggregated data generated in response to the aggregating; 11. The remote server of claim 10, comprising:

12. said tracking said current and historical software application downloads further comprising: detecting a total number of downloads of said current and historical software application downloads; determining active user trends for users associated with the current and historical software application downloads based on the analysis of the total downloads; determining additional trends related to the number of users traversing the particular geographic region detected as being associated with the previous download events performed via the remote hardware and software resources based on the active user trends; generating an Application Download Tracker (ADT) score by associating previously determined ADT scores for current active users, the total number of downloads, and the total number of new downloads of the current and historical software application; 12. The remote server of claim 11, comprising:

13. Storing the data includes: storing said data about all download events performed via said remote hardware and software resources; storing consumption data relating to the currently consumed capacity of the remote hardware and software resources for the particular geographic region; Storing historical interest scores associated with predictions for future resource requests.

13. The remote server of claim 12, comprising:

14. The method further comprises: Determining a correction factor related to capacity requirements relative to total system capacity for said particular geographic region.

14. The remote server of claim 13, comprising:

Citation Information

Patent Citations

  • Information communication system, information communication method and node program

    JP2011070316A

  • Distributing data among data storage partitions based on a forecasted demand in a networked computing environment

    US20130124809A1