Detailed Description
Various exemplary embodiments of the present disclosure will now be described in detail with reference to the accompanying drawings. It should be noted that the relative arrangement of the components and steps, numerical expressions and numerical values set forth in these embodiments do not limit the scope of the present disclosure unless it is specifically stated otherwise.
The following description of at least one exemplary embodiment is merely illustrative in nature and is in no way intended to limit the disclosure, its application, or uses.
Techniques, methods, and apparatus known to one of ordinary skill in the relevant art may not be discussed in detail, but are intended to be part of the specification where appropriate.
In all examples shown and discussed herein, any specific values should be construed as merely illustrative, and not a limitation. Thus, other examples of exemplary embodiments may have different values.
It should be noted that like reference numerals and letters refer to like items in the following figures, and thus once an item is defined in one figure, no further discussion thereof is necessary in subsequent figures.
Referring to fig. 1, a schematic diagram of a conventional bandwidth bill generation process is shown. As shown in fig. 1, in the cloud platform, the electronic device, when generating a bandwidth bill of an enterprise, for each billing object of the enterprise, for example, billing object 1, billing object 2. M is an integer greater than 0, the charging object may be an object using bandwidth resources, such as a domain name or an IP address of an enterprise, the electronic device may obtain instantaneous peaks of bandwidth resources used by each charging object respectively, by fitting the instantaneous peaks of different charging objects at the same time point, peaks of enterprises at different time points in charging start-stop time are obtained, and the maximum value or 95 peaks or other peaks in the peaks can be selected as charging peaks for generating bandwidth bills, so that the general bill of the enterprises, namely the bandwidth bill of bandwidth resources used by all charging objects of the enterprises in the charging start-stop time range, is calculated according to the charging peaks.
It should be noted that, the 95 peak value corresponds to 95 charging (95 th Percentile charging), which is a peak value of bandwidth resources used by a charging object, in a charging start-stop time range, an effective peak value is taken at each preset time interval to be arranged in a descending order, a peak value sequence is obtained, then, the peak value with the higher value in the peak value sequence being 5% is removed, and the remaining higher bandwidth is used as a charging peak value for charging. For example, taking the charging start-stop time as 1 month and 30 days as an example, the peak value of the bandwidth resource used by the default charging object is an effective peak value, taking one peak value every 5 minutes for the peak value of the bandwidth resource used by the charging object, 12 peak values can be obtained per hour, the peak values obtainable per month are 12 x 24 x 30=8640, after all peak values are arranged in descending order, the first 5%, i.e. 8640 x 5% =432 peak values are removed, i.e. the 433 th point can be used as the charging peak value for generating the bandwidth bill.
When generating a bandwidth bill, the conventional bandwidth generation method combines instantaneous peaks of bandwidth resources used by all charging objects, and then provides a total bill by taking enterprises as units, but cannot generate a refined bandwidth bill according to the requirements of the enterprises in a targeted manner, so that the conventional bandwidth generation method has the problem of inflexibility and accuracy.
In view of the above, this embodiment provides a method for generating a bandwidth bill, when an electronic device needs to generate a bandwidth bill of an enterprise, the method may first obtain a total flow of bandwidth resources used by a target object and the total bill, where the target object includes at least one charging packet, each charging packet includes at least one charging object, then may obtain, from charging packets of the target object, a first charging packet of any one to be provided with the refined bill, and obtain a first packet flow of the first charging packet, and then, through the first packet flow, the total flow and the total bill, the electronic device may flexibly and accurately generate the first bill corresponding to the first charging packet.
< Hardware configuration >
Referring to fig. 2, a functional block diagram illustrating a hardware configuration of a server that may be used to implement the bandwidth generation method of one embodiment is shown.
As shown in fig. 2, the server 2000 may include a processor 2100, a memory 2200, an interface device 2300, a communication device 2400, a display device 2500, and an input device 2600. The processor 2100 may be, for example, a central processing unit CPU or the like. The memory 2200 includes, for example, ROM (read only memory), RAM (random access memory), nonvolatile memory such as a hard disk, and the like. The interface device 2300 includes, for example, a USB interface, a serial interface, and the like. The communication device 2400 can perform wired or wireless communication, for example. The display device 2500 is, for example, a liquid crystal display. The input device 2600 may include, for example, a touch screen, a keyboard, and the like.
In this embodiment, the server 2000 may be used to participate in implementing the bandwidth bill generation method according to any embodiment of the present disclosure.
The memory 2200 of the server 2000 is used to store instructions for controlling the processor 2100 to operate in support of implementing a bandwidth bill generation method according to any embodiment of the present disclosure. The skilled artisan can design instructions in accordance with the disclosed aspects of the present disclosure. How the instructions control the processor to operate is well known in the art and will not be described in detail here.
It will be appreciated by those skilled in the art that although a plurality of devices of the server 2000 are illustrated in fig. 2, the server 2000 of the embodiments of the present disclosure may involve only some of the devices thereof, for example, only the processor 2100 and the memory 2200. This is well known in the art and will not be described in detail here.
< Method example >
Referring to fig. 3, a flow diagram of a method for generating a bandwidth bill according to one embodiment is shown. The bandwidth bill generation method provided by the embodiment can be applied to a server of a cloud platform, for example, can be applied to a server 2000 shown in fig. 2, or can also be applied to terminal equipment which can be in communication connection with the cloud platform, wherein the cloud platform comprises at least one cloud product, a charging object uses network resources in the cloud product through bandwidth resources, and the cloud product can be one or more of a cloud server, a content distribution network and a cloud high security product. As shown in fig. 3, the method may include the following steps S3100-S3300, which are described in detail below.
Step S3100, obtaining a total flow and a total bill of bandwidth resources used by a target object, where the target object includes at least one charging packet, and the charging packet includes at least one charging object.
The target object is a charging object created by the user in the cloud product of the cloud platform, in this embodiment, in order to enable the electronic device to flexibly provide the bandwidth bill for the user, the target object is an object including at least one charging group, and each charging group includes at least one charging object.
In this embodiment, the user may be an enterprise user or a personal user, and in this embodiment, the user is taken as an example of the enterprise user for convenience of description.
The charging object comprises at least one of a domain name, an internet protocol address.
The domain name, also called a network domain, is a name of a certain computing device or a group of computing devices on the Internet, which is formed by a series of names separated by dots, and is used for positioning identification (sometimes referred to as geographic location) of the computing device during data transmission, for example, the domain name may be "baidu.com", "sina.com", etc. In practice, because the IP address has the disadvantages of inconvenient memorization and inability to display the name and property of the address organization, the computing device can be conveniently identified by the domain name, and when the user accesses the computing device through the domain name, the user can access the network more conveniently by resolving the domain name to obtain the IP address corresponding to the computing device.
Specifically, in order to solve the problem that the existing bandwidth bill generation method can only obtain a total bandwidth bill of a user, such as an enterprise, but cannot flexibly and accurately generate a refined bandwidth bill according to the enterprise demand, the embodiment groups charging objects in advance for charging objects in a target object when generating the bandwidth bill, obtains at least one charging group, and generates a bandwidth bill corresponding to each charging group according to the refined bandwidth bill provided by electronic equipment by the obtained total bill and total flow and the group flow corresponding to any charging group when generating the refined bandwidth bill.
In specific implementation, the charging grouping can be obtained by obtaining grouping identification information of the charging objects in the target object, and grouping the charging objects in the target object according to the grouping identification information to obtain the charging grouping.
The grouping identification information is information for uniquely identifying a charging grouping to which the charging object belongs, and the grouping identification information can be set by a user when the charging object is created, for example, when the user creates a domain name in a content distribution network, the corresponding grouping identification information can be set for the domain name at the same time, of course, the grouping identification information can also be set according to requirements after the user creates the charging object, or the set grouping identification information can also be modified according to requirements after the grouping identification information is set, or other methods or the grouping identification information of the charging object can also be set at other time points are also used, which is not repeated herein.
In this embodiment, the group identification information includes at least one of department information of a department to which the charging object belongs, and item information of an item to which the charging object belongs.
For example, when the charging object is a domain name, the group identification information may be department information of a department to which the domain name belongs, wherein the department information is used for uniquely identifying a department, for example, the department information may be a department ID of the department, and further, the group identification information may also be item information of an item to which the domain name belongs, wherein the item information is used for uniquely identifying an item, for example, the item information may be an item ID of the item. Of course, in the implementation, the packet identification information may be set according to actual needs, and is not limited herein.
The method specifically comprises the steps of obtaining a general account of bandwidth resources used by a target object, wherein the general account comprises the steps of receiving a bandwidth resource charging message, obtaining charging start and stop time according to the bandwidth resource charging message, fitting peaks of the bandwidth resources used by the target object in the charging start and stop time range to obtain a peak value sequence corresponding to the target object, obtaining peaks meeting preset conditions from the peak value sequence as target peaks, and calculating the general account according to the target peaks.
In an implementation, a timer may be set in the electronic device, where the timer is triggered and generates a bandwidth resource charging message at the beginning of month or at the end of month, and after the electronic device receives the bandwidth resource charging message, the bandwidth bill generation process is triggered. It should be noted that, in the implementation, the bandwidth resource charging message may also be generated by other electronic devices communicatively connected to the electronic device and sent to the electronic device, which is not described herein.
After the electronic device receives the bandwidth resource charging message, in order to provide a refined bandwidth bill for the user, the electronic device may first obtain a total flow and a total bill of the bandwidth resources used by the target object, where the total flow is a flow summation sum of the bandwidth resources used by the domain name in the target object, and specifically may be a flow summation sum of the bandwidth resources used by the target object in a charging start-stop time range.
The charging start-stop time can be obtained according to the information after the electronic equipment receives the bandwidth resource charging information. For example, the charging start-stop time may be directly obtained from the bandwidth resource charging message, or the charging start-stop time may be calculated according to a preset rule.
For example, when the electronic device generates the bandwidth bill of the domain name in the target object at the end of the month, the electronic device can take the beginning and ending time of the month as the beginning and ending time of the charging after receiving the message, and of course, when the electronic device generates the bandwidth bill of the domain name in the target object at the end of the month, the beginning and ending time of the charging can be the beginning and ending time of the last month.
Of course, in implementation, the charging start-stop time may also be specified by the user, for example, a setting interface for setting the charging start-stop time may be provided, through which the charging start-stop time set by the user is received, which will not be described herein.
In this embodiment, the fitting the peak value of the bandwidth resource used by the target object in the charging start-stop time range may be adding the peak values of the bandwidth resources used by different charging objects in the target object at the same time point, so as to obtain the peak value corresponding to the target object at the time point.
For example, the target object is set to include two charging packets, namely, charging packet 1 and charging packet 2, where the charging object in charging packet 1 is domain name 11 and domain name 12, and the charging object in charging packet 2 is domain name 23, and, on the three time points of xxxxxx yy month zz, the peak values of bandwidth resources used by domain name 11, domain name 12 and domain name 23 at the three time points of 9:00, 9:05 and 9:10 are (100 mbps,50mbps,30 mbps), (30 mbps,80mbps,60 mbps) and (200 mbps,120mbps,10 mbps), respectively, and by fitting the peak values of all charging objects in the target object at the same time point, for example, performing addition processing, the fitted peak values of the target object at the three time points are (330 mbps,250, 100), where the bit rate (bps, bitPerSecond) is a unit corresponding to the peak value, and the number of bits (bits) describing bandwidth transmission per second is higher, and the larger the unit time transmitted data amount is.
Of course, in the implementation, the peak value of the bandwidth resource used by different charging objects of the same user at the same time point may also be fitted by other methods, which is not limited in particular herein.
In this embodiment, for convenience of explanation, only the peak values at three time points are taken as examples, and the number of specific time points may be set as needed in the implementation, and the present invention is not limited thereto.
After fitting to obtain peak value sets corresponding to different time points of the target object in the charging start-stop time range, peak value sequences corresponding to the target object can be obtained by performing descending processing on peak values in the peak value sets.
After the peak sequence corresponding to the target object is obtained, a peak value meeting a preset condition can be obtained from the peak sequence as a target peak value, wherein the preset condition can be the maximum value in the peak sequence or 95 peaks, and the preset condition can be set according to the needs in specific implementation, and is not particularly limited.
After the target peak value is obtained, the total bill can be calculated according to the target peak value, specifically, the total bill can be calculated according to a certain charging rule.
In practice, the step charging is generally performed according to the bandwidth peak value, for example, when the bandwidth peak value is in the range of "0 to 500Mbps (inclusive)", the corresponding charging rule may be 0.6 yuan/Mbps/day, and when the bandwidth peak value is in the range of "500 to 5gbps (inclusive)", the corresponding charging rule may be 0.5 yuan/Mbps/day, so when the target peak value is 600Mbps, and the charging start-stop time is "xxxx yy month 01 day 00:00:00 to xx yy month 30 day 23:59:59", that is, when the charging duration is 30 days, the total bill is (500 x 0.6 x 30) + (100 x 0.5 yuan) =10500 yuan.
In this embodiment, the total flow is the total flow of the bandwidth resources used by the target object in the charging start-stop time range.
For example, the target object includes a charging packet, where the charging objects in the charging packet are respectively a domain name 1, a domain name 2, and a domain name 3, the flow rate used by the domain name 1 in the charging start-stop time range is 100G, the flow rate used by the domain name 2 in the charging start-stop time range is 30G, and the flow rate used by the domain name 3 in the charging start-stop time range is 200G, and then the total flow rate=100+30+200=330G.
After step S3100, step S3200 is performed to obtain a first packet traffic of a first charging packet, where the first charging packet is any one of the at least one charging packet, and the first packet traffic is a traffic accumulation sum of bandwidth resources used by a charging object in the first charging packet.
The first charging grouping can be any grouping in at least one charging grouping of the target object, for example, when the bandwidth bill of different departments of the enterprise needs to be generated, the charging grouping in the target object can be at least one charging grouping obtained by taking the department information as grouping identification information, the bandwidth bill corresponding to each department can be generated by generating the first bill corresponding to each charging grouping,
The first packet flow is a flow summation sum of bandwidth resources used by charging objects in the first charging packet. Of course, corresponding to the method for obtaining the total bill of the target object in step S3100, the first packet flow may be a flow summation sum of bandwidth resources used by the charging object in the first charging packet in the charging start-stop time range.
Step S3300, generating a first bill according to the first packet flow, the total flow and the general ledger, where the first bill is a bandwidth bill corresponding to the first charging packet.
After the total flow and the total bill of the target object are obtained in step S3100 and the first packet flow of the first charging packet is obtained in step S3200, a first bill corresponding to the first charging packet may be generated according to the total flow, the total bill and the first packet flow.
Specifically, the generating the first bill according to the first grouping flow, the total flow and the general account bill comprises the steps of calculating a duty ratio value of the first grouping flow in the total flow, and generating the first bill by calculating a product of the duty ratio value and the general account bill.
Referring to fig. 4, a schematic diagram of a bandwidth bill generation process according to one embodiment is shown. As shown in fig. 4, the target object includes three charging packets, namely, a charging packet 1, a charging packet 2 and a charging packet 3, wherein the charging packet 1 includes a charging object 11 and a charging object 12, the charging packet 2 includes a charging object 21 and a charging object 22, the charging packet 3 includes a charging object 31, and the total bill of the target object is 2000 yuan, the total flow is 1900G, and the flows of bandwidth resources used by other charging objects are respectively shown in the figure, then the bandwidth bill corresponding to the charging packet can be generated by obtaining the sum of the flows of the bandwidth resources used by all charging objects in the charging packet, namely, the packet flow, and multiplying the ratio value of the packet flow in the total flow by the total bill. For example, for charging packet 1, when the corresponding packet traffic is calculated to be 100+200=300g, the bandwidth bill, i.e. bill 1, is (300/1900) ×2000= 315.789 yuan.
It should be noted that, in this embodiment, after the general ledger of the target object is obtained by calculation, the bandwidth bill corresponding to the charging packet is obtained by calculating the ratio value of the packet flow used by the charging packet in the total flow. However, this approach may lead to a problem of statistical inaccuracy when the peak value of a certain charging packet for the bandwidth resource used is relatively stable. For example, if the target peak value used for calculating the total bill is 600Mbps, but the average peak value of the charging packet 1 is 50Mbps, there is a problem that the accuracy and fairness are not enough when generating the bandwidth bill corresponding to each charging packet according to the ratio value of the packet flow of each charging packet to the drink in the total flow.
In order to solve the problem, in implementation, a first average peak value corresponding to a first charging packet may be obtained in advance before the method is implemented, where the first average peak value is an average value of peaks of domain names in the first charging packet in a charging start-stop time range, an absolute value of a difference value between the first average peak value and a target peak value is obtained, a first packet flow is obtained when the absolute value of the difference value is smaller than a preset difference value threshold, and the first bill is generated according to the first packet flow, the total flow and the general bill. And
And under the condition that the absolute value of the difference value is smaller than a preset difference value threshold value, acquiring an accumulated sum of grouping peak values of all charging grouping in the target object, acquiring a first grouping peak value of a first charging grouping, and generating a first bill of the first domain name grouping according to the first grouping peak value, the accumulated sum and the general bill.
The grouping peak value of the charging grouping is the peak value of bandwidth resources used by domain names in the charging grouping, and is obtained by fitting the peak values of all domain names in the charging grouping in the charging starting and ending time range to obtain a grouping peak value sequence, and obtaining the peak value meeting the preset condition as the grouping peak value according to the grouping peak value sequence.
It should be noted that, in this embodiment, the electronic device performing the method may be a server, and after the server obtains the first bill of each charging packet with the target object by using the above method, the method further includes providing the first bill to a terminal device, where the terminal device is configured to display the first bill.
As can be seen from the above steps S3100-S3300, after the electronic device obtains the total flow of the bandwidth resource and the general ledger of the bandwidth resource used by the target object, the method of this embodiment may obtain any one of the first charging packets to be provided with the fine bill from the charging packets of the target object, and obtain the first packet flow of the first charging packets, and generate the first bill corresponding to the first charging packets through the first packet flow, the total flow and the general ledger. The method can flexibly and accurately generate the refined bandwidth bill.
< Device example >
In this embodiment, there is further provided a bandwidth bill generating apparatus, which may be applied to an electronic device, for example, may be applied to the server 2000 shown in fig. 2, and as shown in fig. 5, the apparatus 5000 may include a general bill obtaining module 5100, a packet traffic obtaining module 5200, and a bandwidth bill generating module 5300.
The general ledger sheet obtaining module 5100 is configured to obtain a total flow and a total bill of bandwidth resources used by a target object, where the target object includes at least one charging packet, and the charging packet includes at least one charging object.
In one embodiment, the apparatus 5000 further includes a charging packet obtaining module, configured to obtain packet identification information of a charging object in the target object, and group the charging object in the target object according to the packet identification information, so as to obtain the charging packet.
In one embodiment, the general ledger sheet obtaining module 5100 may be configured to receive a bandwidth resource charging message when obtaining a general ledger sheet of a bandwidth resource used by a target object, obtain a charging start-stop time according to the bandwidth resource charging message, fit peaks of the bandwidth resource used by the target object in the charging start-stop time range to obtain a peak sequence corresponding to the target object, obtain a peak value meeting a preset condition from the peak sequence as a target peak value, and calculate the general ledger according to the target peak value.
A packet flow module 5200, configured to obtain a first packet flow of a first charging packet, where the first charging packet is any one of the at least one charging packet, and the first packet flow is a flow summation sum of bandwidth resources used by a charging object in the first charging packet.
And a bandwidth bill generating module 5300 configured to generate a first bill according to the first packet flow, the total flow, and the general bill, where the first bill is a bandwidth bill corresponding to the first charging packet.
In one embodiment, the bandwidth bill generation module 5300, when configured to generate a first bill according to the first packet traffic, the total traffic and the general bill, may be configured to calculate a duty value of the first packet traffic in the total traffic, and generate the first bill by calculating a product of the duty value and the general bill.
In one embodiment, the apparatus 5000 may be applied to a server, and the apparatus further includes a first bill providing module configured to provide the first bill to a terminal device, where the terminal device is configured to display the first bill.
< Device example >
In this embodiment, there is also provided an electronic device, which may include the bandwidth bill generating apparatus 5000 according to any embodiment of the present disclosure, for implementing the bandwidth bill generating method of any embodiment of the present disclosure.
As shown in fig. 6, the electronic device 6000 may further include a processor 6200 and a memory 6100, the memory 6100 for storing executable instructions, the processor 6200 for running the electronic device according to control of the instructions to perform the bandwidth bill generation method according to any embodiment of the present disclosure.
The various modules of the above apparatus 5000 may be implemented by the processor 6200 executing the instructions to perform a bandwidth bill generation method according to any embodiment of the present disclosure.
The electronic device 6000 may be a server, for example, the electronic device 6000 may be the server 2000 of fig. 2 or the like.
< Example of Medium >
In this embodiment, there is also provided a computer-readable storage medium storing a computer program readable and executable by a computer for performing the method according to any of the above embodiments of the present disclosure when the computer program is read and executed by the computer.
The present disclosure may be a system, method, and/or computer program product. The computer program product may include a computer readable storage medium having computer readable program instructions embodied thereon for causing a processor to implement aspects of the present disclosure.
The computer readable storage medium may be a tangible device that can hold and store instructions for use by an instruction execution device. The computer readable storage medium may be, for example, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer-readable storage medium include 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 encoding device, punch cards or intra-groove protrusion structures such as those having instructions stored thereon, and any suitable combination of the foregoing. Computer-readable storage media, as used herein, are not to be construed as transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides or other transmission media (e.g., optical pulses through fiber optic cables), or electrical signals transmitted through 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 over 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 transmissions, wireless transmissions, routers, firewalls, switches, gateway computers and/or edge servers. The network interface 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 performing the operations of the present disclosure may be assembly 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 be executed 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 kind of network, including a Local Area Network (LAN) or a Wide Area Network (WAN), or may be connected to an external computer (for example, through the Internet using an Internet service provider). In some embodiments, aspects of the present disclosure are implemented by personalizing electronic circuitry, such as programmable logic circuitry, field Programmable Gate Arrays (FPGAs), or Programmable Logic Arrays (PLAs), with state information of computer readable program instructions, which can execute the computer readable program instructions.
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 having the instructions stored therein includes 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 flowcharts 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. It is well known to those skilled in the art that implementation by hardware, implementation by software, and implementation by a combination of software and hardware are all equivalent.
The foregoing description of the embodiments of the present disclosure has been presented for purposes of illustration and description, and is not intended to be exhaustive or limited to the embodiments disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the various embodiments described. The terminology used herein was chosen in order to best explain the principles of the embodiments, the practical application, or the technical improvements in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments disclosed herein. The scope of the present disclosure is defined by the appended claims.