Disclosure of Invention
In view of this, the present disclosure provides a bandwidth allocation method and apparatus, which can improve the bandwidth utilization efficiency of the CDN.
According to an aspect of the present disclosure, there is provided a bandwidth allocation method, which is applied to a content delivery network CDN server, and includes:
when a playing request of a terminal device for a target video is received, acquiring parameter information of the terminal device;
determining the rating corresponding to the playing request according to the parameter information;
determining a CDN bandwidth corresponding to the rating;
and distributing the target video matched with the CDN bandwidth to the terminal equipment.
In a possible implementation manner, allocating, to the terminal device, a target video that matches the CDN bandwidth includes:
determining a first definition of a matched target video according to the CDN bandwidth;
and issuing the playing content corresponding to the first definition of the target video to the terminal equipment.
In a possible implementation manner, determining, according to the parameter information, a rating corresponding to the play request includes:
and determining the rating corresponding to the playing request according to the weighted sum of the scores of the various parameter information of the terminal equipment.
In one possible implementation manner, the playing request comprises a second definition requested by the terminal device to play the target video,
wherein the method further comprises:
and when the first definition is different from the second definition, controlling the terminal equipment to send out a prompt for changing the definition.
In a possible implementation manner, the weights of the various parameter information of the terminal device are different.
According to another aspect of the present disclosure, there is provided a bandwidth allocation apparatus, which is applied to a content delivery network CDN server, the apparatus including:
the device comprises a parameter information acquisition module, a parameter information acquisition module and a video playing module, wherein the parameter information acquisition module is used for acquiring the parameter information of the terminal equipment when a playing request of the terminal equipment for a target video is received;
the rating determining module is used for determining the rating corresponding to the playing request according to the parameter information;
a bandwidth determination module for determining a CDN bandwidth corresponding to the rating;
and the target video distribution module is used for distributing a target video matched with the CDN bandwidth to the terminal equipment.
In one possible implementation, the target video distribution module includes:
the definition determining submodule is used for determining the first definition of the matched target video according to the CDN bandwidth;
and the playing content issuing submodule is used for issuing the playing content corresponding to the first definition of the target video to the terminal equipment.
In one possible implementation, the rating determination module includes:
and the rating determining submodule is used for determining the rating corresponding to the playing request according to the weighted sum of the grades of the various parameter information of the terminal equipment.
In one possible implementation manner, the playing request comprises a second definition requested by the terminal device to play the target video,
wherein the apparatus further comprises:
and the control module is used for controlling the terminal equipment to send out a prompt for changing the definition when the first definition is different from the second definition.
In a possible implementation manner, the weights of the various parameter information of the terminal device are different.
According to another aspect of the present disclosure, there is provided a bandwidth distribution apparatus including: a processor; a memory for storing processor-executable instructions; wherein the processor is configured to perform the above method.
According to another aspect of the present disclosure, there is provided a non-transitory computer readable storage medium having computer program instructions stored thereon, wherein the computer program instructions, when executed by a processor, implement the above-described bandwidth allocation method.
According to the embodiment of the disclosure, when a playing request of a terminal device for a target video is received, a rating corresponding to the playing request and a CDN bandwidth corresponding to the rating can be determined according to parameter information of the terminal device, and the target video matched with the CDN bandwidth is distributed to the terminal device, so that the CDN bandwidth utilization rate is improved.
Other features and aspects of the present disclosure will become apparent from the following detailed description of exemplary embodiments, which proceeds with reference to the accompanying drawings.
Detailed Description
Various exemplary embodiments, features and aspects of the present disclosure will be described in detail below with reference to the accompanying drawings. In the drawings, like reference numbers can indicate functionally identical or similar elements. While the various aspects of the embodiments are presented in drawings, the drawings are not necessarily drawn to scale unless specifically indicated.
The word "exemplary" is used exclusively herein to mean "serving as an example, embodiment, or illustration. Any embodiment described herein as "exemplary" is not necessarily to be construed as preferred or advantageous over other embodiments.
Furthermore, in the following detailed description, numerous specific details are set forth in order to provide a better understanding of the present disclosure. It will be understood by those skilled in the art that the present disclosure may be practiced without some of these specific details. In some instances, methods, means, elements and circuits that are well known to those skilled in the art have not been described in detail so as not to obscure the present disclosure.
Fig. 1 is a flow diagram illustrating a method of bandwidth allocation in accordance with an example embodiment. The method is applied to a CDN server of the content delivery network. As shown in fig. 1, a bandwidth allocation method according to an embodiment of the present disclosure includes:
in step S11, when a play request of a terminal device for a target video is received, parameter information of the terminal device is acquired;
in step S12, determining a rating corresponding to the play request according to the parameter information;
in step S13, determining a CDN bandwidth corresponding to the rating;
in step S14, a target video matching the CDN bandwidth is allocated to the terminal device.
According to the embodiment of the disclosure, when a playing request of a terminal device for a target video is received, a rating corresponding to the playing request and a CDN bandwidth corresponding to the rating can be determined according to parameter information of the terminal device, and the target video matched with the CDN bandwidth can be distributed to the terminal device. Therefore, when the number of users watching the video is large, the corresponding CDN bandwidth can be determined according to the rating corresponding to the playing request, and the target video matched with the CDN bandwidth is distributed, so that the CDN bandwidth utilization peak value is reduced on the basis that the user can play the target video more smoothly. When the number of users watching the video is small, the CDN bandwidth utilization peak value is reduced, so that the CDN bandwidth waste can be reduced, the CDN bandwidth utilization rate is improved, and CDN bandwidth resources are saved.
For example, a terminal device (e.g., a cell phone, a television, a tablet, etc.) may initiate a play request for a target video. The CDN server obtains the parameter information of the terminal equipment initiating the playing request when receiving the playing request of the terminal equipment aiming at the target video. The terminal device may include various parameter information, and the parameter information of the terminal device may reflect the performance of the terminal device.
For example, a user wants to play a target video through his mobile phone, and triggers a play control of the target video, the mobile phone of the user initiates a play request for the target video, and the CDN server receives the play request for the target video from the mobile phone of the user. At this time, the CDN server obtains the parameter information of the mobile phone. For example, the CDN server may obtain one or more of various parameter information such as a screen pixel density ppi (pixels Per inc) of the mobile phone, a central Processing unit cpu (central Processing unit) of the mobile phone, an operating system of the mobile phone, a screen resolution of the mobile phone, and a Buffer of the mobile phone. For example, the parameter information that the CDN server may obtain the terminal device that initiates the play request is: the CPU is a certain effect a11+ M11 coprocessor, the operating system is IOS11, screen resolution 1334 × 750 pixels, and cache 2G.
Those skilled in the art should understand that the terminal device may include various parameter information, and is not limited to the above examples as long as the CDN server can obtain the parameter information of the terminal device, which is not limited by the present disclosure.
In a possible implementation manner, the CDN server determines, according to the parameter information, a rating corresponding to the play request.
For example, the CDN server determines, according to parameter information of the terminal device (for example, one or more of a PPI, a CPU, an operating system, a screen resolution, and a cache of the terminal device), a rating corresponding to the play request. Those skilled in the art will appreciate that the rating corresponding to the play request may include a variety of forms, e.g., one to five, a to E, etc. When the CDN server determines the rating corresponding to the play request according to the parameter information of the terminal device, the CDN server may determine the rating corresponding to the play request directly according to the parameter information of the terminal device, and the CDN server may also score the play request according to the parameter information of the terminal device, and determine the rating corresponding to the play request by scoring the play request. The CDN server scores the playing request according to the parameter information of the terminal device, may score the playing request according to the comprehensive information of the various parameter information of the terminal device, determine a rating corresponding to the playing request according to the comprehensive rating, or score the playing request according to respective information of each piece of parameter information, and determine a rating corresponding to the playing request by a weighted sum of multiple ratings of the playing request. As long as the CDN server can determine the rating corresponding to the play request according to the parameter information of the terminal device, the disclosure does not limit this.
In a possible implementation manner, the CDN server may determine, directly according to the parameter information of the terminal device, a rating corresponding to the play request.
For example, the CDN server may determine, directly according to the parameter information of the terminal device, a rating corresponding to the play request. For example, when the CDN server determines that the rating corresponding to the play request is five levels according to the combination condition of various parameter information of the terminal device (for example, a corresponding list between the combination of various parameter information and each rating exists, and the rating corresponding to the play request is determined to be five levels according to the corresponding list), the CDN server may directly determine that the rating corresponding to the play request is five levels.
By the method, after the parameter information of the terminal equipment is acquired, the rating of the playing request can be directly and quickly determined according to the corresponding list. Those skilled in the art will appreciate that the correspondence list between the combination of various parameter information and each rating may be determined according to the performance of the terminal device to which the combination of various parameter information reflects, and the present disclosure is not limited thereto.
In a possible implementation manner, the CDN server may score the play request according to the comprehensive information of the multiple kinds of parameter information of the terminal device, and determine a rating corresponding to the play request according to a score of the play request.
For example, the CDN server may score the play request according to the obtained comprehensive information of the various parameter information of the terminal device. The score can be in a five-point system (0-5), a percentage system (0-100) or other forms, and the rating of the playing request is determined according to the score. For example, the parameter information of the terminal device that the CDN server obtains to initiate the play request is: the CPU is a certain effect a11+ M11 coprocessor, the operating system is IOS11, screen resolution 1334 × 750 pixels, and cache 2G. The CDN server may determine that the system performance of the terminal device is excellent according to the integrated information of the various parameter information, and at this time, the play request may be scored by 90 points (for example, the score corresponding to the system performance being excellent is 90 points). When the CDN server obtains the parameter information of the terminal device that initiates the play request: CPU one star 7420, operating system android4.0, screen resolution 1280 x 720 and buffer 1G. The CDN server may determine that the system performance of the terminal device is general according to the integrated information of the various parameter information, and at this time, may score the play request by 50 points (for example, a score corresponding to the system performance is generally 50 points).
In this way, the playing request can be scored according to the comprehensive information of various parameter information of the terminal device, and the score can be used for determining the rating corresponding to the playing request. Those skilled in the art should understand that the CDN server may score the playing request according to the comprehensive information of the multiple kinds of parameter information of the terminal device in multiple ways, which is not limited to the above example, as long as the playing request can be scored according to the comprehensive information of the multiple kinds of parameter information of the terminal device, and the disclosure is not limited thereto.
Fig. 2 is a flow diagram illustrating a method of bandwidth allocation in accordance with an example embodiment. In one possible implementation, as shown in fig. 2, step S12 may include:
in step S121, a rating corresponding to the play request is determined according to a weighted sum of scores of various parameter information of the terminal device.
For example, the CDN server may score the play request according to various parameter information of the terminal device, to obtain multiple scores of the play request. After obtaining the multiple scores of the playing request, the CDN server may determine, according to a weighted sum of the multiple scores of the playing request, a rating corresponding to the playing request. For example, the parameter information of the terminal device acquired by the CDN server includes a CPU, an operating system, a screen resolution, and a cache of the terminal device. The CDN server may score the play requests according to the CPU, the operating system, the screen resolution, and the cache of the terminal device, respectively, to obtain 4 scores according to the 4 parameter information of the terminal device. The CDN server may determine the rating corresponding to the play request according to a weighted sum of the 4 scores of the play request.
For example, the CDN server may determine a weighted sum of multiple scores for the play request according to equation (1). Equation (1) may be as follows:
wherein f represents the weighted sum of a plurality of scores of the playing request, n is the number of scores of the playing request, i is a variable, the value range of i is 1-n, i and n are positive integers, DiDenotes the ith score, kiWeight f, D representing parameter information corresponding to ith scoreiAnd kiIs a positive number.
Wherein the sum of the weights of the parameter information is 1. For example, it can be expressed as formula (2).
For example, the parameter information of the terminal device that initiates the play request obtained by the CDN server is: the CPU is MT6523T, the operating system is android5.0, the screen resolution is 1280 × 720, and buffer 1G. According to the parameter information, the CPU scores 50 points, the operating system scores 80 points, the screen resolution scores 40 points and the cache scores 60 points, the CDN server can determine the score of the playing request according to the corresponding score of each parameter information and the weight of each parameter information. For example, when the weight of each parameter information is the same, the above 4 scores (scores) may be added and averaged to obtain a final score of 57.5.
In a possible implementation manner, the weights of the various parameter information of the terminal device are different.
For example, the weights of the various parameter information of the terminal devices may not be exactly the same. For example, if the CPU, the os, the screen resolution, and the buffer have weights of 0.1, 0.2, 0.6, and 0.1 in this order, the score of the playback request is 51 points by calculating the formula 50 × 0.1+80 × 0.2+40 × 0.6+60 × 0.1 as 51.
It should be noted that, when the CDN server scores a play request according to the parameter information of the terminal device, a higher attention may be set to the screen resolution of the terminal device. For example, when the playback requests are respectively scored according to the information of each parameter, the weight of the screen resolution is set higher. Thus, for example, when the definition of the video that the user wishes to view is high (for example, the user wants to play the ultra high definition video), but the screen resolution of the terminal device is low (at this time, the terminal device of the user cannot play the ultra high definition video itself), the CDN server may set a high degree of attention (for example, a high weight setting of the screen resolution) to the screen resolution of the terminal device, the final score of the play request is made lower (because the score of the play request according to the screen resolution is lower and the weight of the screen resolution is higher, the final score of the play request is lower, that is, the influence of the screen resolution on the final score of the play request is larger), and finally the rating of the play request is made lower, therefore, the waste of CDN bandwidth resources caused by the fact that too much CDN bandwidth resources are allocated to the user and the performance of the terminal equipment is poor is reduced.
In this way, the CDN server can more accurately determine the rating corresponding to the play request according to the weighted sum of the scores of the various pieces of parameter information of the terminal device. Those skilled in the art should understand that the weights of the various parameter information of the terminal device may be flexibly set according to the importance degree of the parameter information, as long as the CDN server may determine the rating corresponding to the play request according to the weighted sum of the scores of the various parameter information of the terminal device, which is not limited in this disclosure.
In one possible implementation, the CDN server determines a CDN bandwidth corresponding to the rating.
For example, the CDN server determines a CDN bandwidth corresponding to the rating. For example, if the CDN server determines that the rating corresponding to the play request is one level (e.g., the lowest level), the CDN server determines the CDN bandwidth corresponding to the one level.
In a possible implementation manner, the CDN server allocates a target video matched with the CDN bandwidth to the terminal device.
For example, after the CDN server determines the CDN bandwidth corresponding to the rating, the CDN server allocates a target video matching the CDN bandwidth to the terminal device. For example, when the rating corresponding to the play request is level one (lower rating), the CDN server allocates the target video matching the CDN bandwidth corresponding to the level one to the terminal device.
Fig. 3 is a flow diagram illustrating a method of bandwidth allocation in accordance with an example embodiment. In one possible implementation, as shown in fig. 3, step S14 may include:
in step S141, determining a first definition of the matched target video according to the CDN bandwidth;
in step S142, the playing content corresponding to the first definition of the target video is issued to the terminal device.
For example, the CDN server may provide the terminal device with videos of multiple definitions corresponding to the played content of the target video. For example, for animation a, the CDN server may provide a target video of a standard definition video, a high definition video, or a super definition video. The CDN server bandwidth occupied by playing the target videos with different definitions is different, and the CDN server bandwidth occupied by playing the target video with higher definition is larger. The CDN server may determine the first definition of the matched target video according to the CDN bandwidth. For example, when the CDN server determines that the rating corresponding to the play request for the animation a is one level, a CDN bandwidth corresponding to one level may be determined. At this time, the CDN server may determine, according to the CDN bandwidth, that the first definition of the matched target video is the standard definition. The CDN server may issue, to the terminal device, the play content corresponding to the first definition of the target video. For example, the CDN server may send the standard definition play content of the animation a to the terminal device.
By the method, the first definition of the matched target video can be determined according to the CDN bandwidth, the playing content corresponding to the first definition of the target video is issued to the terminal equipment, and CDN bandwidth resources can be saved while smooth video playing is ensured. Those skilled in the art should understand that the first definition of the matched target video may be determined according to the CDN bandwidth in a manner known in the related art, and the playing content corresponding to the first definition of the target video may be delivered to the terminal device, which is not limited by the present disclosure.
In a possible implementation manner, the playing request includes a second definition that the terminal device requests to play the target video.
For example, the user initiates a play request for the target video through the terminal device, and the play request may further include a second definition that the terminal device requests to play the target video. For example, a user wants to play a target video through his mobile phone, and wants to watch an ultraclear target video, he triggers a play control of the target video, the mobile phone of the user initiates a play request for the target video, and the play request includes a second definition (ultraclear) that the mobile phone requests to play the target video, at this time, the play request received by the CDN server is: and playing the ultra-clear target video.
Fig. 4 is a flow diagram illustrating a method of bandwidth allocation in accordance with an example embodiment. In one possible implementation, as shown in fig. 4, the method further includes:
in step S15, when the first definition is different from the second definition, the terminal device is controlled to issue a prompt for changing the definition.
For example, a user wants to play an ultraclear target video, but the CDN server determines, according to the CDN bandwidth, that the first definition of the matched target video is standard definition (for example, the rating corresponding to the play request is low, the allocated CDN bandwidth is small, and the determined first definition is standard definition), at this time, the first definition (the definition of the target video determined by the CDN server) is different from the second definition (the definition of the target video that the user wants to play), and the CDN server may control the terminal device to send a prompt to change the definition. For example, the CDN server may control the terminal device to prompt: and comparing the cards by the network, and recommending to switch to standard definition video.
By the method, when the definition of the target video determined by the CDN server is different from the definition of the target video which the user wants to play, the terminal equipment is controlled to send out a definition change prompt. It should be understood by those skilled in the art that the terminal device may be controlled to issue the prompt for changing the definition in a manner known in the related art, the prompt may be a downshift prompt, for example, a prompt for switching from super definition to standard definition is suggested, or a shift prompt, for example, a prompt for switching from high definition to super definition is suggested, and the content and the form of the prompt may include various types, as long as the terminal device is controlled to issue the prompt for changing the definition when the first definition is different from the second definition, which is not limited by the disclosure.
Application example
An application example according to the embodiment of the present disclosure is given below in conjunction with "user plays a target video" as an exemplary application scenario to facilitate understanding of the flow of the bandwidth allocation method. It is to be understood by those skilled in the art that the following application examples are for the purpose of facilitating understanding of the embodiments of the present disclosure only and are not to be construed as limiting the embodiments of the present disclosure.
Fig. 5 is a schematic diagram illustrating an application scenario of a bandwidth allocation method according to an exemplary embodiment. As shown in fig. 5, in this application example, a user wants to play a target video with ultra high definition through a television, which triggers a television remote controller M key, the television initiates a play request for the target video, and the play request includes time information of the play request and a second definition (ultra high definition).
In the application example, when receiving a playing request of a television for a target video, the CDN server obtains parameter information of the television. And the CDN server determines a rating corresponding to the playing request according to the parameter information of the television, and determines a CDN bandwidth corresponding to the rating. And the CDN server distributes the target video matched with the CDN bandwidth to the television. For example, the CDN server determines that the first definition of the matched target video is high definition according to the CDN bandwidth corresponding to the rating. The CDN server can issue the high-definition playing content of the target video to the television.
In this application example, the playing request includes that the second definition of the television requesting to play the target video is ultra high definition, the CDN server determines that the first definition of the target video matched with the CDN server is high definition according to the CDN bandwidth corresponding to the rating, and at this time, the first definition is different from the second definition, and the CDN server may control the terminal device to send a prompt to change the definition. As shown in fig. 5, the tv display prompt content is: the network compares the cards and proposes to switch to high-definition video.
According to the embodiment of the disclosure, when a playing request of a terminal device for a target video is received, a rating corresponding to the playing request and a CDN bandwidth corresponding to the rating can be determined according to parameter information of the terminal device, and the target video matched with the CDN bandwidth is distributed to the terminal device, so that the CDN bandwidth utilization rate is improved.
Fig. 6 is a block diagram illustrating a bandwidth distribution apparatus according to an example embodiment. As shown in fig. 6, the bandwidth allocation apparatus includes:
the parameter information acquiring module 61 is configured to acquire parameter information of a terminal device when a playing request of the terminal device for a target video is received;
a rating determining module 62, configured to determine, according to the parameter information, a rating corresponding to the play request;
a bandwidth determining module 63, configured to determine a CDN bandwidth corresponding to the rating;
and a target video distribution module 64, configured to distribute a target video matched with the CDN bandwidth to the terminal device.
Fig. 7 is a block diagram illustrating a bandwidth allocation apparatus according to an example embodiment. In one possible implementation, as shown in fig. 7, the target video distribution module 64 includes:
the definition determining submodule 641 is configured to determine a first definition of the matched target video according to the CDN bandwidth;
the play content issuing sub-module 642 is configured to issue, to the terminal device, a play content corresponding to the first definition of the target video.
In one possible implementation, as shown in fig. 7, the rating determination module 62 includes:
the rating determining sub-module 621 is configured to determine a rating corresponding to the play request according to a weighted sum of scores of various parameter information of the terminal device.
In one possible implementation, as shown in fig. 7, the play request includes a second definition that the terminal device requests to play the target video,
wherein the apparatus further comprises:
and the control module 65 is configured to control the terminal device to send a prompt for changing the definition when the first definition is different from the second definition.
In a possible implementation manner, the weights of the various parameter information of the terminal device are different.
With regard to the apparatus in the above-described embodiment, the specific manner in which each module performs the operation has been described in detail in the embodiment related to the method, and will not be elaborated here.
Fig. 8 is a block diagram illustrating a bandwidth distribution apparatus according to an example embodiment. For example, the apparatus 1900 may be provided as a server. Referring to FIG. 8, the device 1900 includes a processing component 1922 further including one or more processors and memory resources, represented by memory 1932, for storing instructions, e.g., applications, executable by the processing component 1922. The application programs stored in memory 1932 may include one or more modules that each correspond to a set of instructions. Further, the processing component 1922 is configured to execute instructions to perform the above-described method.
The device 1900 may also include a power component 1926 configured to perform power management of the device 1900, a wired or wireless network interface 1950 configured to connect the device 1900 to a network, and an input/output (I/O) interface 1958. The device 1900 may operate based on an operating system stored in memory 1932, such as Windows Server, Mac OS XTM, UnixTM, LinuxTM, FreeBSDTM, or the like.
In an exemplary embodiment, a non-transitory computer readable storage medium, such as the memory 1932, is also provided that includes computer program instructions executable by the processing component 1922 of the apparatus 1900 to perform the above-described methods.
The present disclosure may be systems, methods, and/or computer program products. The computer program product may include a computer-readable storage medium having computer-readable program instructions embodied thereon for causing a processor to implement various aspects of the present disclosure.
The computer readable storage medium may be a tangible device that can hold and store the instructions for use by the instruction execution device. The computer readable storage medium may be, for example, but not limited to, an electronic memory device, a magnetic memory device, an optical memory device, an electromagnetic memory device, a semiconductor memory device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: a portable computer diskette, a hard disk, a Random Access Memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a Static Random Access Memory (SRAM), a portable compact disc read-only memory (CD-ROM), a Digital Versatile Disc (DVD), a memory stick, a floppy disk, a mechanical coding device, such as punch cards or in-groove projection structures having instructions stored thereon, and any suitable combination of the foregoing. Computer-readable storage media as used herein is not to be construed as transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission medium (e.g., optical pulses through a fiber optic cable), or electrical signals transmitted through electrical wires.
The computer-readable program instructions described herein may be downloaded from a computer-readable storage medium to a respective computing/processing device, or to an external computer or external storage device via a network, such as the internet, a local area network, a wide area network, and/or a wireless network. The network may include copper transmission cables, fiber optic transmission, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers. The network adapter card or network interface in each computing/processing device receives computer-readable program instructions from the network and forwards the computer-readable program instructions for storage in a computer-readable storage medium in the respective computing/processing device.
The computer program instructions for carrying out operations of the present disclosure may be assembler instructions, Instruction Set Architecture (ISA) instructions, machine-related instructions, microcode, firmware instructions, state setting data, or source or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C + + or the like and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The computer-readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the case of a remote computer, the remote computer may be connected to the user's computer through any type of network, including a Local Area Network (LAN) or a Wide Area Network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet service provider). In some embodiments, the electronic circuitry that can execute the computer-readable program instructions implements aspects of the present disclosure by utilizing the state information of the computer-readable program instructions to personalize the electronic circuitry, such as a programmable logic circuit, a Field Programmable Gate Array (FPGA), or a Programmable Logic Array (PLA).
Various aspects of the present disclosure are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the disclosure. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer-readable program instructions.
These computer-readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. These computer-readable program instructions may also be stored in a computer-readable storage medium that can direct a computer, programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer-readable medium storing the instructions comprises an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer, other programmable apparatus or other devices implement the functions/acts specified in the flowchart and/or block diagram block or blocks.
The flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems which perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
Having described embodiments of the present disclosure, the foregoing description is intended to be exemplary, not exhaustive, and not limited to the disclosed embodiments. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terms used herein were chosen in order to best explain the principles of the embodiments, the practical application, or technical improvements to the techniques in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments disclosed herein.