METHODS AND SYSTEMS FOR OBTAINING A REWARD FROM A LOYALTY PROGRAM
20180047046 ยท 2018-02-15
Inventors
Cpc classification
International classification
Abstract
A computer-implemented method and computer system are proposed for assisting a consumer associated with a plurality of loyalty programs, and who wishes to obtain a reward using loyalty points. The consumer interacts with a computer system with access to a database containing information about the loyalty programs with which the consumer is associated and the number of points the consumer has accumulated in each program, and at least one reward database storing information relating to rewards on offer using the loyalty programs. The consumer specifies one or more parameters of the desired reward, and the computer system uses the databases to make at least one recommendation of which of the loyalty programs to use to obtain a reward with the specified parameters.
Claims
1. A computer-implemented method for supplying to a consumer associated with a plurality of loyalty programs, information about reward offers offered by the loyalty programs, the method including: receiving from the consumer input specifying one or more parameters of a desired reward; searching a reward database storing information relating to reward offers from the plurality of loyalty programs, to identify reward offers relating to rewards matching the specified parameters; and presenting information about at least one of the identified reward offers to the consumer, whereby the consumer can select one of the identified reward offers, thereby selecting a corresponding one of the plurality of loyalty programs.
2. A method according to claim 1 further including generating a score for each of the identified reward offers using one or more score criteria, and presenting the information about the identified reward offers according to the corresponding scores.
3. A method according to claim 2 in which at least one of the score criteria is based on a ratio between a monetary price of the corresponding reward and the number of loyalty points which is required to obtain the reward.
4. A method according to claim 2 in which at least one of the score criteria is whether the consumer has accumulated enough loyalty points to pay for the reward.
5. A method according to claim 2 in which at least one of the score criteria is based on a prediction of loyalty points the consumer will earn in the future according to a consumer model generated based on the consumer's past behaviour.
6. A method according to any of claim 2 in which at least one of the score criteria is a function of a geographical location associated with the consumer and a geographical location associated with the reward offer.
7. A method according to claim 1 further including: receiving, from the consumer, data input specifying one of the identified reward offers; and displaying data to the consumer notifying the consumer of one or more redemption locations where the matching reward can be obtained.
8. A method according to claim 1 further including: receiving from the consumer data input specifying one of the identified reward offers, the reward offer being associated with a required number of loyalty points which is higher than a number of loyalty points accumulated by the consumer; monitoring accumulation of loyalty points by the consumer; and upon the accumulated loyalty points being at least as high as the required number of loyalty points, sending a message to the consumer.
9. A method according to claim 8 further including, upon receiving data input from the consumer, displaying to the consumer information about the points accumulated in each of the loyalty programs.
10. A computer server system for obtaining, and presenting to a consumer, information about reward offers offered by a plurality of loyalty programs, the computer system including: (a) a communication interface for receiving, from a communication device associated with the consumer, data specifying one or more parameters of a desired reward; (b) a reward database storing information relating to reward offers from the plurality of loyalty programs; and (c) a processor operative to: (i) collect from loyalty program servers associated with a plurality of corresponding loyalty programs data characterizing reward offers offered by the plurality of loyalty programs; (ii) store the data characterizing the reward offers by the plurality of loyalty programs in a rewards database; (iii) perform a search in the rewards database to identify reward offers relating to rewards matching the specified parameters; (iv) generate a score for each of the identified reward offers based on one or more score criteria, and (v) transmit data to the communication device containing information about each of identified rewards to the consumer, and data causing the communication device to present the information to the user according to the score of the corresponding reward offer; whereby the consumer can select one of the identified reward offers, thereby selecting a corresponding one of the plurality of loyalty programs.
11. A computer server system according to claim 10 further including at least one consumer database containing information about the plurality of loyalty programs with which the consumer is associated and the number of points the consumer has accumulated in each of the plurality of loyalty programs, the processor being operative to collect from the loyalty program servers data characterizing loyalty points accumulated by the consumer, and store the data in the consumer database.
12. A computer server system according to claim 10 in which at least one of the score criteria is based on a ratio between a price of the corresponding reward and a required number of loyalty points associated with the identified reward offer.
13. A computer server system according to claim 10 in which at least one of the score criteria is based on whether a number of loyalty points accumulated by the consumer exceeds a required number of loyalty points associated with the identified reward offer.
14. A computer sever system according to claim 10 in which at least one of the score criteria is based on a prediction of loyalty points the consumer will earn in the future according to a consumer model.
15. A computer server system according to claim 10 in which at least one of the score criteria is a function of a geographical location associated with the consumer and a geographical location associated with the reward offer.
16. A computer server system according to claim 10 in which the processor is operative to: receive data input specifying one of the identified reward offers, determine that the specified reward offer is associated with a required number of loyalty points which is higher than a number of loyalty points accumulated by the consumer; monitor accumulation of loyalty points by the consumer; and upon the accumulated loyalty points being at least as high as the required number of loyalty points, send a message to the consumer.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0036] An embodiment of the invention will now be described for the sake of example only with reference to the following figures, in which:
[0037]
[0038]
[0039]
[0040]
[0041]
[0042]
DETAILED DESCRIPTION OF THE EMBODIMENTS
[0043] Referring firstly to
[0044] Each of the consumers is registered with a respective plurality of loyalty programs, the loyalty programs for each consumer being a respective subset of a predetermined set of loyalty programs, which are here called the supported loyalty programs.
[0045] The communication device 1 may be a mobile device, such as a smartphone or tablet computer. The communication device 1 includes a screen 1a and one of more data input devices 1b. The communication device 1 is operative to communicate with a communication network 3 such as the internet.
[0046] The loyalty program management server 5 includes a control unit 51 with processing capacity, and a communication module 52 which provides a communication interface between the loyalty program management server 5 and the communication network 3, so that the communication device 1 and loyalty program management server 5 can interact via the communication network 3.
[0047] The loyalty program management server 5 includes a consumer database 53 for storing respective records relating to the multiple consumers. The record for each consumer indicates the loyalty programs with which the consumer is registered, and information about the consumer's membership of each of those loyalty programs, such as the number of points the consumer has accumulated in the program.
[0048] The loyalty program management server further includes a reward database 54 which, for each of the supported loyalty programs, shows one or more rewards which may be obtained by using corresponding numbers of loyalty points of a corresponding loyalty program. In other words, the reward database 54 stores reward offers to supply respective rewards to consumers in exchange for respective specified numbers of loyalty points in a respective loyalty program. For each reward offer, the reward database 54 may include condition data specifying any conditions associated with the reward offer (for example, that the reward has to be redeemed by a specific date). Furthermore, the rewards database 54 may store association data characterizing any associations which may exist between loyalty programs, such as arrangements that points from one loyalty program may be converted into points of another loyalty program, or such that loyalty points from multiple loyalty programs may be combined to obtain a reward offered by one of those programs.
[0049] The loyalty program management server 5 is able to populate the rewards database 54 by communicating, using the communication module 52 with respective servers 7 operated by the organizers of the supported loyalty programs (for simplicity only two such servers 7 are shown, but there may be a different number of such servers).
[0050] Installed in the communication device 1 is a software application, which the consumer may have downloaded from the loyalty program management server 5, or from elsewhere. The structure of the software application is shown schematically in
[0051] Referring to
[0052] In step 102, the software application generates a unique consumer ID number. This may be done for example based on properties of the communication device 1, e.g. by using a manufacturer's identity number of the device as the seed of a random number generator algorithm.
[0053] In step 103, the software application uses the communication module 11 to establish contact with the loyalty program management server 5 via the communication network 3. All future communication between the software application and the loyalty program management server 5 is managed by the communication module 11 of the communication device 1, and the communication module 52 of the loyalty program management server 5.
[0054] In step 104, the software application (possibly following a command by the consumer entered into the communication device 1) sends a message to the loyalty program management server 5 containing the customer ID number. The message instructs the loyalty program management server 5 to open an account for the consumer, referenced by the unique consumer ID number. The loyalty program management server 5 generates a new record for the consumer in the consumer database 53. All future communications from the software application to the loyalty program management server 5 (and optionally in the other direction) include the customer ID number so that the loyalty program management server 5 is able to correctly associate them with the consumer's record in the personal database 14.
[0055] Note that in a variation of the embodiment, step 102 may be omitted, and the consumer ID could instead be generated in step 103 by the loyalty program management server 5 (or taken from the top of list of unused, pre-generated consumer IDs).
[0056] In step 105 the consumer enters into the communication device 1 details of a plurality loyalty programs with which the consumer is registered, and the consumer's respective membership numbers in each of those programs. The software application stores this data in the personal database 14, and transmits it to the loyalty program management server 5 which stores it in the corresponding record in the database 53. The loyalty programs specified in step 105 must be a subset of a pre-defined set of loyalty programs supported by the loyalty program management server 5.
[0057] In step 106, the loyalty program management server 5 communicates with the corresponding one(s) of the servers 7 to obtain information about the consumer's membership in each of the programs specified in step 105. This information comprises, for example, the number of points the consumer has accumulated in the loyalty programs for which he or she is registered. The data may further include a list of transactions the consumer has made redeeming loyalty points, e.g. including details of which rewards were obtained by redeeming loyalty points and/or where the rewards were obtained (e.g. which shop, mall and/or retail location). This data is included in the consumer's record in the consumer database 53. The loyalty program management server 5 may transmit the data also to the software application, which stores it in the personal database 14.
[0058] It will be understood that in possible variants of the invention, either of the personal database 14 or the consumer database 53 may be omitted, such that the computerized network relies upon the other of those databases 14, 53. However, providing at least partly mirrored databases in the software application and the loyalty program management server 5 minimizes the amount of data which is transferred within the system, and also means that the software application has some functionality when, for some reason, communication via the communication network 3 is temporarily unavailable.
[0059] Henceforth, using the software application, the consumer is able to use the software application to obtain details about the loyalty programs the consumer is registered with. This data may be obtained from the personal database 14 or from the consumer database 53.
[0060] Optionally, the software application contains a database 15 which mirrors part of the database 54. It may for example contain details of the reward offers available for the loyalty programs for which the consumer is registered. The database 15 would mean that the software application would have some functionality even when the communication device is unable to communicate with the loyalty program management server 5. The database 15 may be updated from the database 54 at intervals.
[0061] Optionally, the loyalty program management server 5 may include a consumer modeling module 55 which forms a model of the consumer based on the data in the corresponding record in the consumer database 53. For example, the model may include an estimate of how many loyalty points the consumer will accumulate in each of the loyalty programs in a corresponding future period. In a more sophisticated variant, the model may include how much a certain product type (e.g. petroleum) the consumer will buy in a certain future period, and thus how many loyalty points the consumer could accumulate in the future period if the consumer switched his or her spending on the product type to a merchant associated with a certain one of the supported loyalty programs.
[0062] Once the model is generated, it may optionally be transmitted to the software application, and stored in the database 14. Note that the consumer modeling module may optionally be provided within the software application rather than in the loyalty program management server 5.
[0063] Optionally, either the software application or the loyalty program management server 5 is operative to monitor whether accumulated loyalty points are about to expire, and in this case to generate a message to the consumer using the communication device 1.
[0064] Suppose that the consumer wishes to make a purchase at a point-of-sale (POS) terminal 9 located at a retail location, and the consumer wishes to make a purchase to accumulate loyalty points in one of the loyalty programs with which he is registered. The software application uses data in the personal database 14 to generate and transmit to the POS terminal 9 a message encoding the consumer's membership number in that loyalty program. For example, the software application may display on the screen la a graphical symbol (such as a barcode or a QR symbol) which can be recognized by an optical scanner of the POS terminal 9, to give the consumer's membership number in the loyalty program. In this way, the communication device 1 functions as an alternative to a conventional physical (paper or plastic) loyalty card. In an alternative, the communication device 1 may establish wireless communication with the POS terminal 9 (e.g. by a NFC-protocol message) to transmit to the POS terminal 9 a wireless message containing the consumer's membership number in the loyalty program.
[0065] In a further alternative, if the consumer wishes to use the communication device 1 to make a purchase from an online merchant to which the communication device 1 is connected via the communication network 3, the software application may transmit details of a relevant one of the loyalty programs with which the consumer is registered to the online merchant over the communication network 3.
[0066] In either case, upon the purchase being completed, the consumer's account at the specified loyalty program is credited with the loyalty points earned. This information is generally recorded with a corresponding one of the servers 7, which in turn transmits the information to the loyalty program management server 5, so that the consumer's record in the database 53 can be updated. Furthermore, the consumer modelling module 55 may update the model of the consumer in the databases 14 and 53.
[0067] If the consumer joins a new loyalty program, then the consumer is able to use the data input devices 1b of the communication device 1 to control the software application and to enter details of the new loyalty program, such as the consumer's membership number in the new loyalty program. The software application may accordingly update the databases 14, 15 and 53.
[0068] Alternatively, if the consumer joins a new loyalty program when the consumer is at a retail location, the software application may be able to capture all the required information from the POS terminal 9. For example, this may be by the communication device 1 receiving a wireless message from the POS terminal 9 encoding a new membership number, or by a camera of the communication device 1 capturing an image of a graphical display generated by the POS terminal 9 and encoding the new membership number.
[0069] Occasionally, the consumer may receive an electronic Direct Marketing (eDM) message (for example by email). Sometimes an eDM notifies a consumer that bonus points have been credited to one of the loyalty programs the consumer is registered with. The bonus points may only be available provided that the user makes a certain additional purchase. Alternatively or additionally, the eDM may make an reward offer which is specific to the consumer.
[0070] In any case, the communication device 1 may be operative, under control from the consumer, to forward an eDM message to the software application. If the eDM message contains a reward offer, the software application may store that reward offer in the personal reward database 15. Note that in a variation of the method, the reward database may be omitted and the reward may be stored, for example, in the consumer's record in the database 53.
[0071] Turning now to
[0072] In step 201, the consumer decides to obtain a reward, and uses the data input devices 1b to enter one or more parameters describing the desired reward into the software application. For example, one parameter may be that the reward is a watch.
[0073] The consumer may be able to specify the parameters by selecting from pre-defined options offered to him by the GUI. For this purpose, the software application may store a number of pre-defined options for the parameters (e.g. a list of pre-defined reward categories), and/or be able to obtain these options from the loyalty program management server 5. For example, if the software application stores a number of pre-defined reward categories, one of which is watches, and the consumer selects that reward category, the software application may contact the loyalty program management sever 5 to obtain a corresponding set of more specific options (e.g. watches made by specific manufacturers, or watches in particular styles), and present the more specific options to the consumer using the screen la, for the consumer to make a selection.
[0074] Alternatively or additionally, the consumer may be able to specify the parameters by entering text, such as the word watch into a text-box which is part of the GUI generated by the software application.
[0075] In step 202, the search module 13 of the software application searches the personal reward database 15 for offers meeting the specified parameters. Note that in variants of the embodiment in which the reward database 15 is omitted, the search module 13 may be omitted also and so is step 202.
[0076] In step 203, the software application transmits a message to the loyalty program management server 5 including the specified parameters. The message instructs the control module 51 of the software application to perform a search in the reward database 54 for reward offers relating to rewards matching the criteria.
[0077] In step 204, the control module 51 determines from the consumer database 53 which loyalty programs the consumer is a member of, and searches the rewards database 54 for rewards matching the specified parameters. This search is carried out only in respect of reward offers for the loyalty programs for which the consumer is registered. The result is a list of matching reward offers.
[0078] In step 205, the loyalty program management server 5 passes information about the rewards offers for the matching rewards to the software application. The information may include information about locations at which the rewards may be obtained. Note that if the database 15 is included in the software application, then steps 204 and 205 of the method may be omitted.
[0079] In step 206, the software application ranks the reward offers for the matching rewards identified in steps 202 and 204. It may do this by calculating a respective score for each matching reward offer, using one or more score criteria. For example, it may generate a score for each reward offer by combining (e.g. adding) respective numbers calculated using each of multiple score criteria, and it may list the reward offers in an order depending upon their respective scores.
[0080] For example, one of the score criteria may be whether the consumer has already accumulated the required number of loyalty points in the corresponding loyalty program to purchase the item. In determining this, the software application may take into account points in other loyalty programs which can be used in combination with loyalty points of the program offering the reward. The information about which loyalty programs' points may be combined in this way may have been included the details of the reward offer stored in the reward databases 15 and 54, and included in the message sent by the loyalty program management server 5 in step 205.
[0081] A more sophisticated version of this score criterion might also take into account predicted future spending of the consumer, based on the model constructed by the consumer modeling module 55.
[0082] A second score criterion might be based on the proximity of any location at which the reward can be obtained to the consumer location specified at step 101.
[0083] A third score criterion might be based on the burn rate of the matching reward offers. Supposing that all the loyalty programs have equivalent earn rates (or that, if not, the burn rates for each reward offer have been normalized to compensate for the differing earn rates), a given reward offer may be given a higher score if the burn rate is less. Thus, if identical rewards are offered by multiple loyalty programs, rewards with a lower burn rate will be higher in the list suggested to the consumer.
[0084] In step 207, the consumer makes a selection of one of the listed reward offers, to indicate that the consumer is interested in accepting the reward offer. A list may be stored in the database 14 of reward offers which the consumer has indicated an interest in accepting.
[0085] In step 208, the software application accordingly uses the screen 1a to inform the consumer of locations where the reward can be obtained.
[0086] If the reward offer selected by the consumer is one for which the consumer has not yet accumulated sufficient loyalty points, the software application may register the selection in the personal database 14, and at intervals send the consumer alerts about the consumer's progress in accumulating loyalty points to reach the required number of loyalty points. For example, the software application may generate an alert when a sufficient number of points to obtain the matching reward has been reached. Before that, it may generate messages at intervals indicating how many loyalty points still need to be earned, so that the consumer is prompted to make additional purchases to earn the loyalty points. The timing and/or content of the messages may depend upon a limit date. The limit date may be one specified by the consumer (i.e. a data by which the consumer wishes to be able to obtain the matching reward), or be a date specified by the reward offer (e.g. an expiry date after which the reward offer is no longer valid).
[0087] Optionally, the set of parameter(s) specified during a reward search may be stored, e.g. in the personal database 14 and/or the consumer database 53. If the database 54 is updated to include a new reward offer including a reward matching one of the stored sets of parameter(s), a message may be sent to the consumer.
[0088] We now present two examples of the method 200.
[0089] In the first example, in step 201 the consumer specifies that he or she wants a reward which is a watch. In steps 202 and 204 reward offers relating to watches are identified. In step 206, the software application listed the identified reward offers, with those having the lowest burn rate highest in the list.
[0090] In the second example, in step 201 the consumer specifies that he or she wants a reward which is a holiday to Bali. In steps 202 and 204, reward offers relating to holidays in Bali are identified. The software application determines that the consumer does not have sufficient loyalty points for any of these matching reward offers. However, in step 206 the software application uses the consumer model based on the consumer's spend and redemption past behavior, to identify matching rewards for which the consumer will most easily be able to accumulate the required loyalty points and gives those a higher score, so that they appear at the top of the list presented in the GUI.
[0091] Supposing that the consumer selects one of the reward offers presented by the GUI, the software application records this fact, and notes any expiry date of the selected reward offer. The software application generates messages to the consumer at intervals informing the consumer of progress towards accumulating the required number of points and/or the approach of the expiry date. If the communication device 1 subsequently receives an eDM which advertised a purchase which the consumer can make thereby earning loyalty points, the software application may prompt the consumer to make the purchase using a loyalty program which will earn the consumer loyalty points of the kind required by the selected reward offer. In this case, the software application helps the consumer make progress towards accumulating the required number of loyalty points.
[0092] In a variation of the embodiment, some or all work in calculating scores for the matching reward offers may be performed by the loyalty program management server 5 instead of the software application, especially in respect of reward offers from the reward database 54. Alternatively or additionally, the loyalty program management server 5 may, instead of the software application, perform some or all of the work of monitoring when the consumer has accumulated enough loyalty points to obtain a desired reward.
[0093]
[0094] The technical architecture includes a processor 222 (which may be referred to as a central processor unit or CPU) that is in communication with memory devices including secondary storage 224 (such as disk drives), read only memory (ROM) 226, random access memory (RAM) 228. The processor 222 may be implemented as one or more CPU chips. The technical architecture may further comprise input/output (I/O) devices 230, and network connectivity devices 232.
[0095] The secondary storage 224 is typically comprised of one or more disk drives or tape drives and is used for non-volatile storage of data and as an over-flow data storage device if RAM 228 is not large enough to hold all working data. Secondary storage 224 may be used to store programs which are loaded into RAM 228 when such programs are selected for execution.
[0096] In this embodiment, the secondary storage 224 has a processing component 224a comprising non-transitory instructions operative by the processor 222 to perform various operations of the method of the present disclosure. The ROM 226 is used to store instructions and perhaps data which are read during program execution. The secondary storage 224, the RAM 228, and/or the ROM 226 may be referred to in some contexts as computer readable storage media and/or non-transitory computer readable media.
[0097] I/O devices 230 may include printers, video monitors, liquid crystal displays (LCDs), plasma displays, touch screen displays, keyboards, keypads, switches, dials, mice, track balls, voice recognizers, card readers, paper tape readers, or other well-known input devices.
[0098] The network connectivity devices 232 may take the form of modems, modem banks, Ethernet cards, universal serial bus (USB) interface cards, serial interfaces, token ring cards, fiber distributed data interface (FDDI) cards, wireless local area network (WLAN) cards, radio transceiver cards that promote radio communications using protocols such as code division multiple access (CDMA), global system for mobile communications (GSM), long-term evolution (LTE), worldwide interoperability for microwave access (WiMAX), near field communications (NFC), radio frequency identity (RFID), and/or other air interface protocol radio transceiver cards, and other well-known network devices. These network connectivity devices 232 may enable the processor 222 to communicate with the Internet or one or more intranets. With such a network connection, it is contemplated that the processor 222 might receive information from the network, or might output information to the network in the course of performing the above-described method operations. Such information, which is often represented as a sequence of instructions to be executed using processor 222, may be received from and outputted to the network, for example, in the form of a computer data signal embodied in a carrier wave.
[0099] The processor 222 executes instructions, codes, computer programs, scripts which it accesses from hard disk, floppy disk, optical disk (these various disk based systems may all be considered secondary storage 224), flash drive, ROM 226, RAM 228, or the network connectivity devices 232. While only one processor 222 is shown, multiple processors may be present. Thus, while instructions may be discussed as executed by a processor, the instructions may be executed simultaneously, serially, or otherwise executed by one or multiple processors.
[0100] Although the technical architecture is described with reference to a computer, it should be appreciated that the technical architecture may be formed by two or more computers in communication with each other that collaborate to perform a task. For example, but not by way of limitation, an application may be partitioned in such a way as to permit concurrent and/or parallel processing of the instructions of the application. Alternatively, the data processed by the application may be partitioned in such a way as to permit concurrent and/or parallel processing of different portions of a data set by the two or more computers. In an embodiment, virtualization software may be employed by the technical architecture 220 to provide the functionality of a number of servers that is not directly bound to the number of computers in the technical architecture 220. In an embodiment, the functionality disclosed above may be provided by executing the application and/or applications in a cloud computing environment. Cloud computing may comprise providing computing services via a network connection using dynamically scalable computing resources. A cloud computing environment may be established by an enterprise and/or may be hired on an as-needed basis from a third party provider.
[0101] It is understood that by programming and/or loading executable instructions onto the technical architecture, at least one of the CPU 222, the RAM 228, and the ROM 226 are changed, transforming the technical architecture in part into a specific purpose machine or apparatus having the novel functionality taught by the present disclosure. It is fundamental to the electrical engineering and software engineering arts that functionality that can be implemented by loading executable software into a computer can be converted to a hardware implementation by well-known design rules.
[0102]
[0103] The technical architecture includes a processor 322 (which may be referred to as a central processor unit or CPU) that is in communication with memory devices including secondary storage 324 (such as disk drives or memory cards), read only memory (ROM) 326, random access memory (RAM) 328. The processor 322 may be implemented as one or more CPU chips. The technical architecture further comprises input/output (I/O) devices 330, and network connectivity devices 332.
[0104] The I/O devices comprise a user interface (UI) 330a, a camera 330b and a geolocation module 330c. The UI 330a may comprise a touch screen, keyboard, keypad or other known input device. The camera 330b allows a consumer to capture images and save the captured images in electronic form. The geolocation module 330c is operable to determine the geolocation of the communication device using signals from, for example global positioning system (GPS) satellites. The I/O devices further include a near field communication (NFC) unit 330d, and a controller 330e for the NFC unit 330d. The I/O devices may be supplemented by a host CPU 330f and a secure element (SE) 330g. A secure element is a tamper-resistant platform (typically a one chip secure microcontroller) capable of securely hosting applications and their confidential and cryptographic data.
[0105] The secondary storage 324 is typically comprised of a memory card or other storage device and is used for non-volatile storage of data and as an over-flow data storage device if RAM 328 is not large enough to hold all working data. Secondary storage 324 may be used to store programs which are loaded into RAM 328 when such programs are selected for execution.
[0106] In this embodiment, the secondary storage 324 has a processing component 324a, comprising non-transitory instructions operative by the processor 322 to perform various operations of the method of the present disclosure. The ROM 326 is used to store instructions and perhaps data which are read during program execution. The secondary storage 324, the RAM 328, and/or the ROM 326 may be referred to in some contexts as computer readable storage media and/or non-transitory computer readable media.
[0107] The network connectivity devices 332 may take the form of modems, modem banks, Ethernet cards, universal serial bus (USB) interface cards, serial interfaces, token ring cards, fiber distributed data interface (FDDI) cards, wireless local area network (WLAN) cards, radio transceiver cards that promote radio communications using protocols such as code division multiple access (CDMA), global system for mobile communications (GSM), long-term evolution (LTE), worldwide interoperability for microwave access (WiMAX), near field communications (NFC), radio frequency identity (RFID), and/or other air interface protocol radio transceiver cards, and other well-known network devices. These network connectivity devices 332 may enable the processor 322 to communicate with the Internet or one or more intranets. With such a network connection, it is contemplated that the processor 322 might receive information from the network, or might output information to the network in the course of performing the above-described method operations. Such information, which is often represented as a sequence of instructions to be executed using processor 322, may be received from and outputted to the network, for example, in the form of a computer data signal embodied in a carrier wave.
[0108] The processor 322 executes instructions, codes, computer programs, scripts which it accesses from hard disk, floppy disk, optical disk (these various disk based systems may all be considered secondary storage 324), flash drive, ROM 326, RAM 328, or the network connectivity devices 332. While only one processor 322 is shown, multiple processors may be present. Thus, while instructions may be discussed as executed by a processor, the instructions may be executed simultaneously, serially, or otherwise executed by one or multiple processors.
[0109] Whilst the foregoing description has described exemplary embodiments, it will be understood by those skilled in the art that many variations of the embodiment can be made within the scope and spirit of the present invention.