Abstract:
A server for identifying one or more sales opportunities for a target product, based on stored market data is provided that solves the above-described problem by using an automated process that aids publishers in identifying and, taking advantage of, sales opportunities for the target product. The server is configured for defining at least one existing comparable product that matches one or more characteristics of the target product, reading social media data and sales data for the target product, reading social media data and sales data for the comparable product, filtering that data by demographic factors, calculating one or more sales opportunities for the target product based on the data that was read, ranking the one or more sales opportunities for the target product based on the stored market data, which comprises consumer behavior data, and displaying the sales opportunities and the corresponding rankings in a geographic map.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
       [0001]    This patent application is a continuation in part of patent application Ser. No. 14/214,589 filed Mar. 14, 2014 and entitled “Automated Identification of Marketing Opportunities Based on Stored Marketing Data”, which claims priority to provisional patent application No. 61/782,258 filed Mar. 14, 2013 and entitled “Automated Identification of Marketing Opportunities Based on Stored Marketing Data”. The subject matter of application Ser. Nos. 14/214,589 and 61/782,258 are hereby incorporated by reference in their entirety. 
     
    
     STATEMENT REGARDING FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT 
       [0002]    Not Applicable. 
       INCORPORATION BY REFERENCE OF MATERIAL SUBMITTED ON A COMPACT DISC 
       [0003]    Not Applicable. 
       TECHNICAL FIELD 
       [0004]    The technical field relates generally to electronic commerce and, more specifically, to automated processes for identifying sales opportunities for facilitating electronic commerce. 
       BACKGROUND 
       [0005]    Whereas in the past the book publishing industry was largely based on a physical distribution model and available data was limited to the invoicing, sales, and returns data found in simple supply chain transactions, in recent years opportunities have arisen for the collection of a broad range of consumer data via electronic sales channels and processes. The types of raw data now being collected include but are not limited to: transactional sales data, real-time geographic and demographic data of the purchaser, electronic reviews, geographic distribution of all sales of a particular type of book or subject matter in a given time period, data on the other goods purchased at the time of a book purchased, and segmentation of a particular consumer into a demographic group based on the accumulation of all consumer purchases and behaviors in a given period, such that other metrics can be attached to that consumer relating to time-sensitive opportunities in the broader consumer market. Complete collection, integration, and analysis of these types of data are critical for successful business activities, particularly in identifying and deploying new sales strategies. 
         [0006]    However, the broad diffusion of this data across many types of servers and institutions, coupled with a lack of a unified vehicle for analysis, creates a barrier to entry for publishers to reliably collect and integrate this data in order to identify actionable opportunities. In all cases publishers only hold their own data—an incomplete segment of the larger market—and must rely on third parties for additional data, which is in itself a barrier due to competitive factors. In addition large expenses and specialized knowledge are required to build a dedicated data team to undertake these types of complex and time sensitive analyses—resources that are beyond the reach of most publishers. Further, there exists no reliable third-party tool to cost-effectively access and aggregate the specialized data from multiple sources that allows multi-directional analysis. Finally, as the market for all content becomes increasingly diffuse, the volume of data being created and the difficulty of shaping that data into an accessible form create a lack of broad market insight that becomes a barrier in and of itself. Therefore, the lack of affordable, organized, reliable, and understandable intelligence becomes a significant barrier to sales growth and competitiveness. 
         [0007]    Therefore, a need exists for improvements over the prior art, and more particularly for more efficient methods and systems for collecting and integrating consumer data to identify sales opportunities for facilitating electronic commerce, especially in the book publishing industry. 
       SUMMARY 
       [0008]    A method, system, server and computer program product that collects data and identifies one or more sales opportunities for a target product, based on stored market data is provided. This Summary is provided to introduce a selection of disclosed concepts in a simplified form that are further described below in the Detailed Description including the drawings provided. This Summary is not intended to identify key features or essential features of the claimed subject matter. Nor is this Summary intended to be used to limit the claimed subject matter&#39;s scope. 
         [0009]    In one embodiment, a server for identifying one or more sales opportunities for a target product, based on stored market data is provided that solves the above-described problem by using an automated process that aids publisher in identifying and taking advantage of sales opportunities for the target product. The server is configured for defining at least one existing comparable product that matches one or more characteristics of the target product, defining a genre category for the target product, reading social media data and sales data related to both the comparable product and the overall genre, weighting and indexing all data according to various metrics, calculating one or more sales opportunities for the target product based on the data that was read, ranking the one or more sales opportunities for the target product based on the stored market data, which comprises consumer behavior data, and displaying the sales opportunities and the corresponding rankings in a variety of forms that may include, but are not limited to, ranked lists, geographic maps, heat maps, bubble charts, cluster analyses, and other analytic output. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0010]    The accompanying drawings, which are incorporated in and constitute a part of this disclosure, illustrate various example embodiments. In the drawings: 
           [0011]      FIG. 1  is a block diagram of an operating environment that supports the automatic provision of sales opportunities for a target product, according to an example embodiment; 
           [0012]      FIG. 2A  is a diagram showing the data flow of the process for automatic provision of sales opportunities for a target product, according to an example embodiment; 
           [0013]      FIG. 2B  is a diagram showing the data flow of the algorithm used to determine sales opportunities for a target product, according to an example embodiment; 
           [0014]      FIG. 3A  is a flow chart of a method for the automatic provision of sales opportunities for a target product, according to an example embodiment; 
           [0015]      FIG. 3B  is an illustration of a sample display of sales opportunities for a target product, according to an example embodiment; 
           [0016]      FIG. 4  is a block diagram of a system including a computing device, according to an example embodiment. 
       
    
    
     DETAILED DESCRIPTION 
       [0017]    The following detailed description refers to the accompanying drawings. Wherever possible, the same reference numbers are used in the drawings and the following description to refer to the same or similar elements. While embodiments of the invention may be described, modifications, adaptations, and other implementations are possible. For example, substitutions, additions, or modifications may be made to the elements illustrated in the drawings, and the methods described herein may be modified by substituting, reordering, or adding stages to the disclosed methods. Accordingly, the following detailed description does not limit the invention. Instead, the proper scope of the invention is defined by the appended claims. 
         [0018]    Disclosed methods provide for automatic identification of one or more sales opportunities for a target product, based on stored industry and consumer market data, thereby solving the above-described problem by using an automated process that aids publishers and others (such as agents, authors, or other inquiry agents) in identifying and, taking advantage of, marketing and sales opportunities for the target product. The systems and methods of the present invention leverage the availability of book sales data, social network data and various consumer data to provide a quick and easy way for publishers to obtain automated marketing advice. Further, the systems and methods of the present invention improve over the prior art by providing a publisher access to affordable, integrated, market-wide intelligence to guide business decision-making. Lastly, the systems and methods of the present invention provide analytics of marketing and sales data to the publisher, which would otherwise not be available to them on an internal basis. 
         [0019]      FIG. 1  is a block diagram of an operating environment  100  that supports the automatic provision of sales opportunities for a target product, such as a book, according to an example embodiment. In further embodiment, the operating environment  100  may support the automatic provision of sales opportunities for other products, including consumer packaged goods, as well as creative content such as music, movies, television shows, mobile apps, etc. 
         [0020]    The environment  100  may comprise multiple client computers  120 ,  122 ,  124  and a server  102  communicating via a communications network  106 . Each of the client computers  120 ,  122 ,  124  and server  102  may be connected either wirelessly or in a wired or fiber optic form to the communications network  106 . Client computers  120 ,  122 ,  124  and server  102  may each comprise a computing device  400 , described below in greater detail with respect to  FIG. 4 .  FIG. 1  shows that client computers  120 ,  122 , and  124  may comprise mobile computing devices such as cellular telephones, smart phones or tablet computers, or other computing devices such as a desktop computer, laptop, or game console, for example. Communications network  106  may be a packet switched network, such as the Internet, or any local area network, wide area network, enterprise private network, cellular network, phone network, mobile communications network, or any combination of the above. 
         [0021]    Environment  100  may be used when multiple clients or, for example, publishers and their inquiry agents,  110 ,  112 ,  114  engage with server  102  to obtain marketing advice based on stored market data. Clients  110 ,  112 ,  114  may be self-published authors, agents, publishers, or other industry professionals, which are collectively referred to as inquiry agents. Data repository  170  refers to a third party entity that creates, stores or collects sales data and/or social networking data. Social network  180  refers to an online provider of conventional social network services to consumers  110 ,  112 ,  114  such as Facebook, LinkedIn, Instagram, Pinterest, WhatsApp, SnapChat, and Twitter. Customer feedback  190  refers to a cache of consumer data which may be held by a third party entity that creates, stores or collects such data such as Goodreads or Amazon, or it may belong to the client themselves, for example direct-to-consumer data collected by publishers and their inquiry agents. Each client computer  120 ,  122 ,  124  may connect directly or indirectly to server  102 , social network  180 , data repository  170 , and consumer feedback  190  as defined in method  300  below. 
         [0022]    Data repository  170 , social media network  180 , consumer feedback  190 , and server  102 , are each associated with a database, such as database  104  for server  102 . Each of the databases may hold social media data, which may include, for each user or social media account, but is not limited to, the total number of friends or followers of the user or account, the number of social media updates (such as posts, tweets, photos, interactions, etc.), the number of social media likes, or any of the data above divided or categorized by time, geographic region, density and virality (i.e., the state or condition of being viral or able to spread). Each of the databases may also hold sales data, which may include, for each product, total number of sales of each version of the product (such as printed books versus electronic books), library circulation data, or any of the data above divided or categorized by time, geographic region, density and virality (i.e., the extent—by numbers—to which an item has become viral or able to spread via the Internet). Each of the databases may also hold customer feedback data such as frequency &amp; recency of purchase, opinions, performance reviews, qualitative and quantitative research, stars and other aggregated ratings, product lists, and full text reviews which may or may not be parsed for semantic search. In addition, these databases may also include census data, product data, mobile usage data, and other types of specific market data pertaining to consumer behavior. 
         [0023]      FIG. 1  shows an embodiment of the present invention wherein networked computing devices  120 ,  122 ,  124  interact with server  102 , social network  180 , customer feedback  190 , and repository  104  over the network  106 . Server  102  includes a software engine that delivers applications, data, program code and other information to networked computing devices  120 ,  122 ,  124 . The software engine of server  102  may perform other processes such as transferring multimedia data in a stream of packets that are interpreted and rendered by a software application as the packets arrive. It should be noted that although FIG.  1  shows only two networked computing devices  120 ,  122 ,  124  the system of the present invention supports any number of networked computing devices connected via network  106 . 
         [0024]    Server  102  includes program logic  150  comprising computer source code, scripting language code or interpreted language code that is compiled to produce executable file or computer instructions that perform various functions of the present invention. In another embodiment, program logic  150  may be distributed among more than one of server  102 , computers  120 ,  122 ,  124 , or any combination of the above. In yet another embodiment, program logic  150  may comprise a programming module, as described in  FIG. 4  below. 
         [0025]    Note that although server  102  is shown as a single and independent entity, in one embodiment of the present invention, the functions of server  102  may be integrated with another entity, such as one of the client computers or one or more of  170 ,  180 ,  190 . Further, server  102  and its functionality, according to a preferred embodiment of the present invention, can be realized in a centralized fashion in one computer system or in a distributed fashion wherein different elements are spread across several interconnected computer systems. 
         [0026]      FIG. 2A  is a diagram showing the data flow  200  of the process for automatic provision of sales opportunities for a target product, according to an example embodiment.  FIG. 2A  depicts the transfer of data from, for example, inquiry agent  110  to server  102 , namely, the selection or identification of target product  202 , a comparable product  204 , and a genre definition  205 . The target product may comprise a printed book or an electronic book. Further, the comparable product may match one or more of the following characteristics of the target product: series, subject, category, author, region, related group, and any literary prizes bestowed upon the book. In one embodiment, the inquiry agent  110  selects or identifies a target product  202  to server  102  via an online graphical user interface (executing on the device  120  of agent  110 ) by clicking on a displayed selection or selecting a selection via a pull down menu. In another embodiment, the sever  102 —in an automated fashion—finds a comparable product  204  (because it matches one or more of the following characteristics of the target product: genre, subject, category, author, region, related group, and any literary prizes bestowed upon the book). Thereafter, the server  102 , via the network  106 , displays one or more comparable products  204  for the inquiry agent  110  to select via the graphical user interface executing on the device  120  of agent  110 . 
         [0027]    Consequently, the server  102  collects sales data and social network data (as defined above) from social network  180 , and/or data repository  170 , and/or customer feedback  190 . Using the data it has collected, as well as other data that may be present in database  104 , the server  102  then executes the calculations and algorithms for the method for automatic provision of sales opportunities for a target product, as defined in  FIGS. 3A and 3B  below. As a result of the execution of the calculations and algorithms, the server  102  sends sales advice  206  to the inquiry agent  110  for display on the device  120 . 
         [0028]    The sales advice  206  may comprise identification of under-performing segments, growth opportunities, or new customer development opportunities for the target product-development opportunities for the target product based on the data that was read by server  102 . The sales advice  206  may also comprise a ranking of the one or more sales opportunities for the target product based on stored market data, which comprises consumer behavior data. In one embodiment, the sales advice  206  may display the sales opportunities and the corresponding rankings in a geographic map, a map of weighted circles, a heat map, and/or a ranked list including text strings with an action, a social media indicator or a geographic indicia. 
         [0029]      FIG. 2B  is a diagram showing the data flow of the algorithm  280  used to determine sales opportunities for a target product  202 , according to an example embodiment.  FIG. 2B  depicts the data inputs and outputs for the algorithm  280  used to determine sales opportunities for a target product  202 .  FIG. 2B  shows that the algorithm  280  reads the social network data  252  (received from social network  180 , for example) and sales data  254  (received from data repository  170 , for example).  FIG. 2B  also shows that the algorithm  280  reads, or has already saved, stored market data  256 , as well as consumer behavior data  257 . In one embodiment, the stored market data  256  includes consumer behavior data.  FIG. 2B  further shows that algorithm  280  outputs sales advice  206 , which may comprise identification of under-performing segments, growth opportunities, or new customer development opportunities for the target product. 
         [0030]      FIG. 3A  is a flow chart of a method for the automatic provision of sales opportunities for a target product, according to an example embodiment.  FIG. 3  depicts the actions of an example inquiry agent  110  attempting to obtain sales advice and analytics of marketing and customer behavioral data for the purpose of increasing sales of his target product. 
         [0031]    Method  300  may begin at stage  302  wherein the inquiry agent  110  provides a comparable product  204 , as a proxy for his target product  202  to server  102  (as discussed above with reference to  FIG. 2A ). Next, in optional step  304 , the inquiry agent  110  defines which of the aforementioned data from the comparable product  204  to compare to the target product  202 . In certain cases, the comparable product  204  may only match the target product  202  in a limited way, such as by target age or thematic element (for example). In these cases, the inquiry agent  110  may specify, in this step, that the algorithm  280  should only compare certain specified characteristics (such as target age or thematic element) of the comparable product  204  to the target product  202 . This allows for a more precise comparison. In this step, the inquiry agent  110  also specifies genre definition  205  to benchmark opportunity against mean. One embodiment of this genre definition could be the use of a Book Industry Standards and Communications (BISAC) code, for example. 
         [0032]    In one embodiment of step  304 , the inquiry agent  110  selects or identifies a certain specified characteristics to server  102  via an online graphical user interface (executing on the device  120  of agent  110 ) by clicking on a displayed selection or selecting a selection via a pull down menu. In another embodiment, the sever  102 —in an automated fashion—determines the certain specified characteristics by doing a comparison of the target product  202  and comparable product  204 . 
         [0033]    Next, in step  306 , the server  102  collects sales data  254  and social network data  252  (as defined above) from social network  180  and/or data repository  170 , as well as consumer feedback  190 . Using the data it has collected, as well as other data that may be present in database  104  (such as stored market data  256 ), the server  102  then executes the calculations and algorithms of steps  308 - 318 . 
         [0034]    In step  308 , sales data of comparable product  204 , aggregated sales of books that fall within genre definition  205 , and any additional data specified by inquiry agent in step  304  are divided into predetermined buckets. In one embodiment, each bucket might correspond to a geographic area, such as a zip code, area code, defined region, defined marketing area “DMA”, etc. Also in step  308 , social media data, such as followers, friends, updates, etc., could be divided into the same predetermined buckets. 
         [0035]    In step  310 , various data in each bucket is calculated. In one embodiment, the following three pieces of data are calculated for each bucket on a geographic basis: 
         [0036]    [% of sales of comparable product  204  in that bucket] 
         [0037]    [% of sales of all books within genre definition  205  in that bucket] 
         [0038]    [% of target product audience (as defined by stored demographic data or social media data) in that bucket] 
         [0039]    wherein the comparable product audience corresponds to the audience for the author of target product  102 , the product itself, a series of products of which the target product is a member, etc. 
         [0040]    In step  312 , using the data calculated in step  310 , for each predefined bucket, such as a geographic location, a zip code, area code, defined region, or defined marketing area “DMA”, a performance metric (i.e., a value, such as a percentage) is assigned to each item based on the frequency of sales versus a market average, mean, or index. 
         [0041]    For example, in one embodiment, the following three pieces of data are calculated for each bucket on a geographic basis: 
         [0000]      [% of sales of comparable product 204 in bucket] is &lt;,&gt;, or =[Mean Sales of comparable product]=% Performance metric(+/−100%).
 
         [0000]      [% of sales of all books in genre sales data grouping in bucket] is &lt;,&gt;, or =[Mean Sales of all genre sales data grouping]=performance metric(+/−100%).
 
         [0000]      [% of defined target product audience in bucket] is &lt;,&gt;, or =[Average frequency of defined target product audience across general market]=performance metric(+/−100%).
 
         [0000]    These performance metrics are then averaged, to give each specified bucket—for example a geographic marker like a zip code, area code, defined region, defined marketing area “DMA”—a master performance metric number that can be used to create an initial rank in subsequent steps. 
         [0042]    In step  314 , server  102  ranks the predetermined buckets via the master performance metrics assigned in step  312 , from highest to lowest, creating an initial ranked opportunities list. In one embodiment, the multiple data points may also preserved individually to aid in various visualizations in the final output, sales advice  206 . 
         [0043]    In step  316 , server  102  executes a second ranking process by adding weights to the rankings of the market opportunities calculated in step  314 . The weights may be based on a variety of data (such as historic sales data, social media data, demographic data, presence of high-frequency customers, retail presence, etc.). In one example, the weights may be placed based on density, virality, and influence of the geographic bucket or consumer grouping relative to the genre of the target product. In another example, weights may be assigned on the basis of broader and more generalized demographic segmentation such as household income, the presence of institutions of higher learning, religious distribution, job markets, housing markets, or other data. The data used to perform the ranking algorithm of step  316  may comprise a least a portion of the stored market data  256 . 
         [0044]    In step  318 , server  102  executes a third ranking process by adding additional weights to the sales opportunities that were weighted in step  316 . The weights may be based on a variety of data. In one example, the weights may be placed based on the relevance of the geographic bucket or consumer grouping to the inquiry agent&#39;s location and/or industry position relative to the original inquiry. The data used to perform the ranking algorithm of step  318  may comprise a least a portion of the stored market data  256 . 
         [0045]    As a result of the execution of the calculations and algorithms, in step  320 , the server  102  creates a comparative landscape of the ranked data generated in steps  312 - 318 . This data is then manipulated for optimal display to the inquiry agent  110 . For example, the sales advice  206  could be displayed in a geographic map, a map of weighted circles, a heat map, and/or a ranked list including text strings with an action, a social media indicator or geographic indicia. In step  322 , the sales advice  206  is then sent to the inquiry agent  110  for display on his computer  120 . 
         [0046]      FIG. 3B  is an illustration of a sample display of sales opportunities for a target product, according to an example embodiment.  FIG. 3B  shows example sales advice  206  displayed on computer  120 . The  figure 350  depicts a visualization of the audience for the genre definition  205 , combined with a target market analysis for the target product  202 , as calculated in steps  308 - 318 , and displayed in a heat map. Graduated circles indicate the four top market opportunities. The  figure 350  shows the largest circle (#1) around the area between New York and Chicago, the second largest circle around the area between San Francisco and L.A. with a rank of #2, the second smallest circle around the Austin/Houston, Tex. region with a rank of #3, and the smallest circle (#4) around the area between Daytona and Miami, Fla. The  figure 352  shows a ranked text list that reflects the data ranking scores calculated in  308 - 318 , as well as a bar chart showing the top ten markets for the target product  202 , based on the overall opportunity ranking as calculated in steps  312 - 318 . 
         [0047]      FIG. 4  is a block diagram of a system including an example computing device  400  and other computing devices. Consistent with the embodiments described herein, the aforementioned actions performed by client computers  120 ,  122 ,  124 , by server  102  and the entities  170 ,  180 ,  190  may be implemented in a computing device, such as the computing device  400  of  FIG. 4 . Any suitable combination of hardware, software, or firmware may be used to implement the computing device  400 . The aforementioned system, device, and processors are examples and other systems, devices, and processors may comprise the aforementioned computing device. Furthermore, computing device  400  may comprise an operating environment for data flow  200  and method  300  as described above. Data flow  200  and method  300  may operate in other environments and are not limited to computing device  400 . 
         [0048]    With reference to  FIG. 4 , a system consistent with an embodiment of the invention may include a plurality of computing devices, such as computing device  400 . In a basic configuration, computing device  400  may include at least one processing unit  402  and a system memory  404 . Depending on the configuration and type of computing device, system memory  404  may comprise, but is not limited to, volatile (e.g. random access memory (RAM)), non-volatile (e.g. read-only memory (ROM)), flash memory, or any combination or memory. System memory  404  may include operating system  405 , and one or more programming modules  406 . Operating system  405 , for example, may be suitable for controlling computing device  400 &#39;s operation. In one embodiment, programming modules  406  may include, for example, a program module for executing the actions of program logic  150 . Furthermore, embodiments of the invention may be practiced in conjunction with a graphics library, other operating systems, or any other application program and is not limited to any particular application or system. This basic configuration is illustrated in  FIG. 4  by those components within a dashed line  420 . 
         [0049]    Computing device  400  may have additional features or functionality. For example, computing device  400  may also include additional data storage devices (removable and/or non-removable) such as, for example, magnetic disks, optical disks, or tape. Such additional storage is illustrated in  FIG. 4  by a removable storage  409  and a non-removable storage  410 . Computer storage media may include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information, such as computer readable instructions, data structures, program modules, or other data. System memory  404 , removable storage  409 , and non-removable storage  410  are all computer storage media examples (i.e. memory storage.) Computer storage media may include, but is not limited to, RAM, ROM, electrically erasable read-only memory (EEPROM), flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store information and which can be accessed by computing device  400 . Any such computer storage media may be part of device  400 . Computing device  400  may also have input device(s)  412  such as a keyboard, a mouse, a pen, a sound input device, a camera, a touch input device, etc. Output device(s)  414  such as a display, speakers, a printer, etc. may also be included. The aforementioned devices are only examples, and other devices may be added or substituted. 
         [0050]    Computing device  400  may also contain a communication connection  416  that may allow device  400  to communicate with other computing devices  418 , such as over a network in a distributed computing environment, for example, an intranet or the Internet. Communication connection  416  is one example of communication media. Communication media may typically be embodied by computer readable instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave or other transport mechanism, and includes any information delivery media. The term “modulated data signal” may describe a signal that has one or more characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media may include wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, radio frequency (RF), infrared, and other wireless media. The term computer readable media as used herein may include both computer storage media and communication media. 
         [0051]    As stated above, a number of program modules and data files may be stored in system memory  404 , including operating system  405 . While executing on processing unit  402 , programming modules  406  (e.g. a program module) may perform processes including, for example, one or more of data flow  200 &#39;s and method  300 &#39;s stages as described above. The aforementioned processes are examples, and processing unit  402  may perform other processes. Other programming modules that may be used in accordance with embodiments of the present invention may include electronic mail and contacts applications, word processing applications, spreadsheet applications, database applications, slide presentation applications, drawing or computer-aided application programs, etc. 
         [0052]    Generally, consistent with embodiments of the invention, program modules may include routines, programs, components, data structures, and other types of structures that may perform particular tasks or that may implement particular abstract data types. Moreover, embodiments of the invention may be practiced with other computer system configurations, including hand-held devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, minicomputers, mainframe computers, and the like. Embodiments of the invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote memory storage devices. 
         [0053]    Furthermore, embodiments of the invention may be practiced in an electrical circuit comprising discrete electronic elements, packaged or integrated electronic chips containing logic gates, a circuit utilizing a microprocessor, or on a single chip (such as a System on Chip) containing electronic elements or microprocessors. Embodiments of the invention may also be practiced using other technologies capable of performing logical operations such as, for example, AND, OR, and NOT, including but not limited to mechanical, optical, fluidic, and quantum technologies. In addition, embodiments of the invention may be practiced within a general purpose computer or in any other circuits or systems. 
         [0054]    Embodiments of the present invention, for example, are described above with reference to block diagrams and/or operational illustrations of methods, systems, and computer program products according to embodiments of the invention. The functions/acts noted in the blocks may occur out of the order as shown in any flowchart. 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/acts involved. 
         [0055]    While certain embodiments of the invention have been described, other embodiments may exist. Furthermore, although embodiments of the present invention have been described as being associated with data stored in memory and other storage mediums, data can also be stored on or read from other types of computer-readable media, such as secondary storage devices, like hard disks, floppy disks, or a CD-ROM, or other forms of RAM or ROM. Further, the disclosed methods&#39; stages may be modified in any manner, including by reordering stages and/or inserting or deleting stages, without departing from the invention. 
         [0056]    Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.