At least some embodiments disclosed herein relate, in general, to systems for providing information relating to businesses to end-users, and more particularly, to providing advertisements and product and service offerings to users of mobile communications networks based, at least in part, on users' real-time geospatial location.
Mobile communications networks have long been used to deliver information relating to businesses to end users. Such information includes, among other things, directory information and information relating to products and services such as, for example, advertisements of various types. Many mobile communications networks are additionally aware of end-users' geospatial location in real-time, as well as users' demographic information and online activities.
The embodiments are illustrated by way of example and not limitation in the figures of the accompanying drawings in which like references indicate similar elements.
The following description and drawings are illustrative and are not to be construed as limiting. Numerous specific details are described to provide a thorough understanding. However, in certain instances, well-known or conventional details are not described in order to avoid obscuring the description. References to one or an embodiment in the present disclosure are not necessarily references to the same embodiment; and, such references mean at least one.
Reference in this specification to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the disclosure. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment, nor are separate or alternative embodiments mutually exclusive of other embodiments. Moreover, various features are described which may be exhibited by some embodiments and not by others. Similarly, various requirements are described which may be requirements for some embodiments but not other embodiments.
Various embodiments of the systems and methods provide information relating to businesses' deals and promotions to users of a mobile communication network, such that such deals and promotions are relevant to, inter alia, users' current geospatial location. In an embodiment, the systems and methods disclosed herein provide the capability for businesses to create “instant deals”—e.g. an offer created on a moments notice in real-time—based on, inter alia, users' current location and time. Instant deals are used, inter alia, to motivate buyer to come in to a business' location for an instant deal. An instant deal motivates a buyer to make a purchase within a short time frame, for example, in the next hour or two, as opposed to a coupon that expires in a month.
Two users 110 and 120 are linked to a mobile communications network 190 via their respective mobile devices 112 and 122. The mobile communications network 190 can be any type of mobile communications network such as, without limitation, CDMA, GSM and satellite-based networks. The mobile devices 112 and 122 can be any type of portable device capable of communicating with the mobile network such as, without limitation, cell phones, smart phones, PDAs, tablet PC's laptop PCs and PDAs. In various embodiments, the mobile communications network 190 provides voice and messaging capabilities and may provide access to other networks such as, for example, other mobile communications networks and/or the Internet.
The mobile communications network 190 tracks the geospatial location of the users' mobile devices 112 and 122 in real-time or near-time as the devices move with their respective users 110 and 120 from point to point. In various embodiments, the location of the mobile devices is determined using any technique now known, or later to be developed, in the art. For example, in an embodiment, the mobile devices 112 and 122 themselves automatically determine their own geospatial location via built in GPS capabilities and communicate their location to the mobile communications network 190 periodically or continuously. Additionally or alternatively, in an embodiment, the mobile communications network 190 determines the location of user mobile devices 112 and 122 using capabilities inherent in the network such as by triangulation or by determining the nearest transmission tower to the devices.
In the illustrated example, the users 110 and 120 are at geospatial positions within the coverage area of the mobile communications network 190. The mobile communications network 190 is aware of, and actively tracks, the geospatial position of the users' 110 and 120 mobile devices 112 and 122. The users 110 and 120 interact with their mobile devices 112 and 122 in a variety of ways including, without limitation, sending and receiving voice and text messages, sending and receiving emails, searching for subject matter using Internet based search and/or directory services and a variety of mobile apps hosted by their client devices.
In so interacting with their mobile devices, the users 110 and 120 broadcast data relating to their intent over the mobile communications network 190. The term “intent” should be understood to refer to, without limitation, the user's intent in engaging in activities on their mobile device, and in particular, provides information suggesting actions the user currently intends to take, for example, purchase a product, eat a meal or purchase a service. In the illustrated example, the users 110 and 120 are broadcasting their intent relating to, among other things, having their hair styled or cut, purchasing golf clubs and finding a nearby restaurant.
In the illustrated example, the user 110 is not currently within close geospatial proximity of any businesses that relate to the user's intent and, therefore, the user 110 does not receive any offers relating to the user's intent. On the other hand, the user 120 is currently in close geospatial proximity (e.g. within 0.25 miles) of a variety of businesses that relate to the user's intent, including retail stores 130, personal services 140 and restaurants 150. In response to the user's 120 broadcast intent and current geospatial position, the user's mobile device 120 receives, via the mobile communication network 190, a set of offers 160 relating to the user's intent for nearby businesses.
Thus, for example, if the user 120 enters a search query on an Internet search service for “hairstyling,” “hair cuts” or “beauty parlor,” the user receives a offer 162 from a nearby hairstyling business (i.e. a personal service 140), offering the next 10 customers 30% off for the next two hours. In another example, if the user 120 browses a service directory (e.g. online YELLOW PAGES) and looks at listings for golf equipment, the user receives a offer 164 from a nearby golf equipment store (i.e. a retail store 130) offering $10 off a brand of drivers sold by the store for the day to customers receiving the offer. In yet another example, if the user 120 sends a text message to a friend inviting the friend to lunch, the user receives a offer 166 from a nearby sandwich shop (i.e. a restaurant 150) offering a $2.00 coupon that expires at 4:30 PM.
In an embodiment, the offers and promotions originate from a mobile advertising service provider (not shown in
In the illustrated embodiment, a number of businesses offering products and/or services 240 wish to provide offers to users 220 via a mobile communications network 290 when such users meet user selection criteria relating to the users' current geospatial position and intent. For example, such selection criteria can select users 220 intending to purchase a particular product or service when such users are within a predefined distance of a business 240 offering such products or services. Offer criteria could additionally include any other data relevant to the offer such as, without limitation, user interests, user demographics, the product or service, the date and/or the time-of-day. In various embodiments, the user selection criteria can specify offers sent immediately to qualifying users 220 or can specify offers sent qualifying users 220 at a future point in time.
In an embodiment, the businesses 240 utilize the services of a mobile advertising service provider 270 to deliver offers to users 220 that meet the businesses' offer user selection criteria. In an embodiment, the businesses 240 communicate information defining offers, including offer details and user selection criteria, to the mobile advertising service provider 270. In various embodiments, businesses 240 communicate information defining offers to the mobile advertising service provider 270 by any conventional means such as, without limitation, the Internet 280 via email or a website provided by the mobile advertising service provider, by voice message or text message and so forth.
In an embodiment, data relating to offers and user selection criteria are stored and updated on one or more mobile advertising databases 274 maintained by the mobile advertising service provider 270 via facilities hosted on one or more mobile advertising servers. In various embodiments, offer details can specify any type of advertisement, promotion or offer that can be delivered to users 220 mobile devices. Such advertisements, promotions and offers could take the form of, without limitation, text objects, HTML objects, media objects, voice messages and text messages, and could be communicated to users 220 mobile devices via any available means such as, for example, via the Internet 280 or via any other facilities provided by the mobile communications network 290.
In an embodiment, facilities hosted on the mobile advertising servers 272 obtain data relating to the location of users 220 and the users' interactions with their mobile devices via the mobile communications network 290. In an embodiment, the mobile advertising servers 272 archive historical information on the mobile advertising databases 274 relating to users' geospatial locations over time. In an embodiment, the mobile advertising servers 272 archive historical information on the mobile advertising databases 274 relating to historical information relating to users' interactions with their mobile device over time. In an embodiment, the mobile advertising servers 272 maintain various other types of information on the mobile advertising databases 274 relating to users that may be relevant to businesses 240 such as, without limitation, user profile information, user demographics and user interests. In an embodiment, such information is obtained from any available source such as, for example, the mobile communications network 290, user profile or interest information on third party websites (not shown) or directly from the users 220 via the Internet 280.
In an embodiment, the mobile network 290 provides data relating to all users 220 of the mobile network to the mobile advertising service provider 270 on a periodic or continuous basis. In an embodiment, users 220 explicitly register with the mobile advertising service provider 270 and the mobile network 290 only provide data relating to registered users to the mobile advertising service provider 270. In an embodiment, users 220 register with the mobile advertising service provider 270 and maintain various types of profile and preference information stored on the mobile advertising databases 274 via facilities provided by the mobile advertising servers 272 such as, for example, a website.
In an embodiment, the facilities hosted on the mobile advertising servers 272 identify data relating to users' 220 intent from the data relating to the users' interactions with their mobile devices. In an embodiment, intent is inferred from text entered by users 220 into messages and/or search queries sent from the users' mobile devices using any textual, linguistic or semantic technique known in the art, for example, parsing and identifying keywords, key phrases and other textual signals within such text. Intent can also be inferred from other any other user 220 actions that do not relate to text entry, such as, for example, user selection of specific websites or directory entries. In an embodiment, historical and informational data relating to users is used to infer user intent.
In an embodiment, the facilities hosted on the mobile advertising servers 272 utilize data relating to the location of users 220 to track the current location of individual users. In an embodiment, periodically or continuously, facilities hosted on the mobile advertising servers 272 matches users 220 whose current geospatial location is known against the user selection criteria of active offers (e.g. not expired, and within any active time period specified for the offer, if applicable). In an embodiment, for at least some offers, such user selection criteria comprise solely geospatial criteria. In an embodiment, for at least some offers, such user selection criteria additionally comprise user intent criteria. In an embodiment, for at least some offers, such additionally comprise other user selection criteria such as, for example, user interests and/or demographics. In an embodiment, for at least some offers, additionally comprise temporal criteria such, for example, as date and time ranges.
In an embodiment, when the facilities hosted on the mobile advertising servers 272 match users 220 to offer selection criteria for specific offers stored on the mobile advertising databases 274, facilities on the mobile advertising servers transmit such offers to the selected users' 220 mobile devices via any available communications channels suitable for transmitting the offer to the mobile devices. In an embodiment, such channels include the Internet 280 and/or the mobile communications network 290.
In an embodiment, user 220 devices may provide facilities to filter such offers via offer selection criteria (e.g. specific categories, products, vendors and so forth), such that the user 220 devices automatically delete any offer that does not meet offer selection criteria. In an embodiment, user 220 devices may provide facilities to filter such offers via offer rejection criteria (e.g. specific categories, products, vendors and so forth), such that the user 220 devices automatically delete any offer that meets offer rejection criteria. In an embodiment, the mobile advertising service provider 270 provides facilities, via the mobile advertising servers, 272 to maintain preferences for individual users 220 that include offer filtration criteria (e.g. offer selection and/or rejection criteria) such that the mobile advertising servers 272 filter offers initially selected for individual users using the individual user's filtration criteria.
In an embodiment, businesses 240 can, using facilities hosted on the mobile advertising servers 272, issue user location queries to determine if any users 220 known to the system are currently in a specific geographic location or area. In an embodiment, such queries may additionally include query criteria relating to users' 220 intent. In an embodiment, such queries may additionally include query criteria relating to any other data relating to users 220 that may be relevant such as, for example, user interests or demographics. In an embodiment, certain demographics or other user attributes cannot be used in queries where such attributes specifically identify a group at potentially at risk for exploitation or abuse, for example, gender, age or a combination of gender and age.
In an embodiment, the results of user location queries by businesses 240 simply return a count of users 220 meeting user location query criteria. For example, a if a sushi restaurant in a mall issues a user location query for users 220 in the mall that intend to eat and like sushi, the system returns a count of the users meeting such criteria. In an embodiment, due to privacy concerns, the system does not reveal the identity of specific users meeting user location query criteria or any other details relating to such users as individuals, nor, in some embodiments, their precise geospatial location.
In an embodiment, if the results of a user location query by a business 240 indicate one or more users 220 meet query criteria, the business can, using facilities hosted on the mobile advertising servers 272, send one or more offers to the mobile advertising service provider 270 that are immediately delivered to the selected users.
In
The inter-connect 302 interconnects the microprocessor(s) 303 and the memory 308 together and also interconnects them to a display controller and display device 307 and to peripheral devices such as input/output (I/O) devices 305 through an input/output controller(s) 306. Typical I/O devices include mice, keyboards, modems, network interfaces, printers, scanners, video cameras and other devices which are well known in the art.
The inter-connect 302 may include one or more buses connected to one another through various bridges, controllers and/or adapters. In one embodiment the I/O controller 306 includes a USB (Universal Serial Bus) adapter for controlling USB peripherals, and/or an IEEE-1394 bus adapter for controlling IEEE-1394 peripherals.
The memory 308 may include ROM (Read Only Memory), and volatile RAM (Random Access Memory) and non-volatile memory, such as hard drive, flash memory, etc.
Volatile RAM is typically implemented as dynamic RAM (DRAM) which requires power continually in order to refresh or maintain the data in the memory. Non-volatile memory is typically a magnetic hard drive, a magnetic optical drive, or an optical drive (e.g., a DVD RAM), or other type of memory system which maintains data even after power is removed from the system. The non-volatile memory may also be a random access memory.
The non-volatile memory can be a local device coupled directly to the rest of the components in the data processing system. A non-volatile memory that is remote from the system, such as a network storage device coupled to the data processing system through a network interface such as a modem or Ethernet interface, can also be used.
In an embodiment, the mobile advertising servers 272 of
In some embodiments, one or more servers of the system illustrated in
Embodiments of the disclosure can be implemented via the microprocessor(s) 303 and/or the memory 308. For example, the functionalities described above can be partially implemented via hardware logic in the microprocessor(s) 303 and partially using the instructions stored in the memory 308. Some embodiments are implemented using the microprocessor(s) 303 without additional instructions stored in the memory 308. Some embodiments are implemented using the instructions stored in the memory 308 for execution by one or more general purpose microprocessor(s) 303. Thus, the disclosure is not limited to a specific configuration of hardware and/or software.
In one embodiment, the user applications implement one or more user interfaces displayed on the presentation device 429 that provides users the capabilities to, for example, access the Internet, send and receive messages and/or receive and display offers transmitted by a mobile advertising service provider such as the provider 270 or
In one embodiment, users use the user input device 431 to interacts with the device via the user applications 425 supported by the device, for example, by accessing and interacting with websites, messages and offers described in detail above with respect to
In the first operation of the method, one or more processes running on a server receive 510, over a network, the geospatial location of a mobile device associated with a user 510. In an embodiment, the geospatial location of the mobile device is received in any format now known or later to be developed in the art such as, for example, latitude and longitude, GPS coordinates, and so forth. In an embodiment, a mobile communication network pushes the location data to the server without an explicit request. In an embodiment, the server issues one or more requests for data to the mobile communications network, for example, for data relating to users known to a mobile advertising service provider, or alternatively, for all users known to the mobile communications network.
In the second operation of the method, one or more processes running on the server receive 520, over the network, data relating to users activities on their mobile devices. In an embodiment, such data includes, without limitation, data relating to sending and receiving voice and text messages, sending and receiving emails, searching for subject matter using Internet based search and/or directory services and a data from a variety of mobile apps hosted by users client devices. In an embodiment, a mobile communication network automatically collects the location data and pushes the data to the server without the need for the server to explicitly request the data. In an embodiment, the server issues one or more requests for data relating to user activities to the mobile communications network, for example, for data relating to users known to a mobile advertising service provider, or alternatively, for all users known to the mobile communications network.
In an embodiment, data relating to users activities on their mobile devices is additionally or alternatively derived by the processes running on the server from relatively static data relating to user interests, for example, user interests as reflected in user profile data, a user wish list or a user gift list hosted on user mobile devices. In an embodiment, the processes running on the server supplement the data relating to user activities with user profile data or any other data relating to users hosted on user mobile devices, hosted by a mobile advertising service provider server or hosted by a third-party website such as, for example, a social networking website.
In the third operation of the method, one or more processes running on the server determine 530 user's probable intent using at least a portion of the data relating to users' actions. In an embodiment, the processes running on the server infer a user's intent from text created by user actions using any textual, linguistic or semantic technique known in the art, for example, parsing and identifying keywords, key phrases and other textual signals within such text. In an embodiment, the processes running on the server infer a user's intent from other any other user actions that do not relate to text entry, such as, for example, user selection of specific websites or directory entries.
In an embodiment, processes running on the server determines users' probable intent based on recent data, for example, using data from activities of the user occurring in a sliding time frame, for example, in the last three hours. In an embodiment, historical and informational data relating to users is used to infer users' intent, for example, from the last thirty or sixty days.
In the fourth operation of the method, one or more processes running on the server identify 540 at least one offer from an entity that relates to the user's geospatial location and the user's probable intent. In an embodiment, the processes running on the server identify the offers on a database hosted by a mobile advertising service as described in detail below with reference to
In an embodiment, offers can take any form now known or later to be developed in the art, such as, for example:
In the fifth operation of the method, one or more processes running on the server transmit 550, over the network, the identified offers to users' mobile devices using facilities provided by the mobile communications network including, without limitation, text messaging, voice messaging and/or multimedia messaging capacities provided by the network. In an embodiment, the users' mobile devices receive and display offers by opening an application designed for displaying offers. In an embodiment, the mobile advertising service transmits offers as flash files that are immediately displayed by user mobile devices without any action on the part of the user.
In the first operation of the method, one or more processes running on a server receive 610, over a network, a plurality of offers from a plurality of entities. Each offer comprises offer details and offer matching criteria. In an embodiment, offer matching criteria for each offer comprise a respective offer geospatial location and a respective offer intent. In an embodiment, the offers are received via any conventional means for example, via a mobile communications network, via the Internet and/or an internal network of a mobile advertising service provider. In an embodiment, the processes running on a server receive the offers in any format suitable for transmission of offer and/or advertisement data for example, via text messages, voice messages, text files in any format such as XML, multimedia files, emails and so forth.
In an embodiment, the offer geospatial location specifies a geospatial point or a geospatial area in which a user must be present to receive the offer. In an embodiment, the geospatial area is defined using any two or three dimensional format such as, for example:
In an embodiment, offer details provide various data that define the nature and duration of an offer and can additionally include multimedia objects such as images, audio files and/or audiovisual data. In an embodiment, offer details could include one or more of the following fields:
In an embodiment, offering entities set up deals ahead of time, possible day or weeks in advance. For example:
In an embodiment, offering entities set up deals for immediate execution. For example:
In various embodiments, offer intent is expressed in any suitable format such as, for example, keywords and/or key phrases. In an embodiment, keywords and key phrases relating to offer intent could include:
In an embodiment, offers are set up with no associated intent, and the mobile advertising service sends such offers to any users who fall within the geospatial parameters of the offers.
In the second operation of the method, one or more processes running on the server store 620 each offer of the plurality of offers on an offer database in association with a respective one of the plurality of entities from which the respective offer was received. In an embodiment, the offer database can be any type of database now known or later to be developed in the art such as, for example, an object oriented database or a conventional RDBMS. In an embodiment, the offers on the database are indexed by the offer's geospatial location, intent and any other relevant fields such as, for example, starting date and time and ending date and time
In the third operation of the method, one or more processes running on the server match a user's geospatial location and intent to the respective offer matching criteria of at least one offer of the plurality of offers stored on the offer database. In an embodiment, the processes running on the server receive a user's geospatial location and intent using the processes described above with reference to
In the fourth operation of the method, one or more processes running on the server filter 640 the matched offers according to user preferences. In an embodiment, user preferences comprise topics or types of sales for which the user wishes to see offers such as
In an embodiment, if an offer does not fall within user preferences, the offer is not transmitted to the user. Additionally or alternatively, user preferences could include topics for which the user does not wish to see offers, such as a disfavored brand. In an embodiment, a user explicitly defines his or her preferences, for example, via a user website provided by the mobile advertising service. Additionally or alternatively, the mobile advertising service automatically determines user preferences using user profile data and/or data relating to a users' online activities.
In an embodiment, one or more processes running on the server then transmit the respective offer details of the matched and filtered offers to the user's mobile device. In an embodiment, the processes running on the server transmit the matched and filtered offers to the user's mobile devices using the processes described above with reference to
Prior to the execution of the method, in an embodiment, the processes running on the server receive users' geospatial location and intent using the process described above with reference to
In the first operation of the method, one or more processes running on the server receive 710, over a network, a query from an entity such as a business. The query comprises query criteria comprising a query geospatial location and a query intent. In one example, assume a sushi restaurant in a mall wants to know how many potential customers are in the mall who intend to eat and who like sushi. The restaurant submits a query comprising a geospatial location corresponding to all, or a portion, of the mall, and an intent corresponding to eating and sushi. In an embodiment, the entity submits queries to the mobile advertising service using a website provided by the mobile advertising service provider. In an embodiment, query criteria additionally include user demographics and/or user interests.
In the second operation of the method, one or more processes running on the server determine 720 that query criteria match a user's geospatial location and intent. In an embodiment, the system matches any users whose last known location falls within the query geospatial location and whose intent relates to the query intent. In an embodiment, query criteria additionally include user demographics and the processes running on the server match the criteria to user demographics, for example, in a user profile. In an embodiment, query criteria additionally include user interests and the processes running on the server match the criteria to user interests, for example, in a user profile.
In the third operation of the method, one or more processes running on the server, in response to determining 720 that query criteria matches a user's geospatial location and intent, transmit 730, over the network, to the entity, an indication that a user matches the query criteria. In an embodiment, the indication simply indicates that at least one user matches the query criteria. In an embodiment, the indication provides a count of the number of users that match the query criteria. In an embodiment, the indication provides data relating to the intent of users matched by the query. In an embodiment, the indication provides data relating to the demographics and/or interests of the users matched by the query.
If the entity receives query results indicating that one or more users match query criteria, the entity can choose to send an offer to the users matched by the query. In such case, in the fourth operation of the method, one or more processes running on the server receive 740, over the network, at least one offer from the entity for the user. In an embodiment, the offers are received via any conventional means for example, via a mobile communications network, via the Internet and/or an internal network of a mobile advertising service provider. In an embodiment, the offers are received in any format suitable for transmission of offer and/or advertisement data for example, via text messages, voice messages, text files in any format such as XML, multimedia files, emails and so forth.
In the fifth operation of the method, one or more processes running on the server filter 750 the received offers according to user preferences. In an embodiment, user preferences comprise topics or types of sales for which the user wishes to see offers. In an embodiment, if an offer does not fall within user preferences, the processes running on the server do not transmit the offer to the user. Additionally or alternatively, user preferences could include topics for which the user does not wish to see offers, such as a disfavored brand. In an embodiment, a user explicitly defines his or her preferences, for example, via a user website provided by the mobile advertising service. Additionally or alternatively, the mobile advertising service automatically determines user preferences using user profile data and/or data relating to a users' online activities.
In an embodiment, one or more processes running on the server then transmit the respective offer details of the matched and filtered offers to the user's mobile device. In an embodiment, the processes running on the server transmit the matched and filtered offers to the user's mobile devices using the processes described above with reference to
While some embodiments can be implemented in fully functioning computers and computer systems, various embodiments are capable of being distributed as a computing product in a variety of forms and are capable of being applied regardless of the particular type of machine or computer-readable media used to actually effect the distribution.
At least some aspects disclosed can be embodied, at least in part, in software. That is, the techniques may be carried out in a computer system or other data processing system in response to its processor, such as a microprocessor, executing sequences of instructions contained in a memory, such as ROM, volatile RAM, non-volatile memory, cache or a remote storage device.
Routines executed to implement the embodiments may be implemented as part of an operating system, middleware, service delivery platform, SDK (Software Development Kit) component, web services, or other specific application, component, program, object, module or sequence of instructions referred to as “computer programs.” Invocation interfaces to these routines can be exposed to a software development community as an API (Application Programming Interface). The computer programs typically comprise one or more instructions set at various times in various memory and storage devices in a computer, and that, when read and executed by one or more processors in a computer, cause the computer to perform operations necessary to execute elements involving the various aspects.
A machine readable medium can be used to store software and data which when executed by a data processing system causes the system to perform various methods. The executable software and data may be stored in various places including for example ROM, volatile RAM, non-volatile memory and/or cache. Portions of this software and/or data may be stored in any one of these storage devices. Further, the data and instructions can be obtained from centralized servers or peer to peer networks. Different portions of the data and instructions can be obtained from different centralized servers and/or peer to peer networks at different times and in different communication sessions or in a same communication session. The data and instructions can be obtained in entirety prior to the execution of the applications. Alternatively, portions of the data and instructions can be obtained dynamically, just in time, when needed for execution. Thus, it is not required that the data and instructions be on a machine readable medium in entirety at a particular instance of time.
Examples of computer-readable media include but are not limited to recordable and non-recordable type media such as volatile and non-volatile memory devices, read only memory (ROM), random access memory (RAM), flash memory devices, floppy and other removable disks, magnetic disk storage media, optical storage media (e.g., Compact Disk Read-Only Memory (CD ROMS), Digital Versatile Disks (DVDs), etc.), among others.
In general, a machine readable medium includes any mechanism that provides (e.g., stores) information in a form accessible by a machine (e.g., a computer, network device, personal digital assistant, manufacturing tool, any device with a set of one or more processors, etc.).
In various embodiments, hardwired circuitry may be used in combination with software instructions to implement the techniques. Thus, the techniques are neither limited to any specific combination of hardware circuitry and software nor to any particular source for the instructions executed by the data processing system.
Although some of the drawings illustrate a number of operations in a particular order, operations which are not order dependent may be reordered and other operations may be combined or broken out. While some reordering or other groupings are specifically mentioned, others will be apparent to those of ordinary skill in the art and so do not present an exhaustive list of alternatives. Moreover, it should be recognized that the stages could be implemented in hardware, firmware, software or any combination thereof.
In the foregoing specification, the disclosure has been described with reference to specific exemplary embodiments thereof. It will be evident that various modifications may be made thereto without departing from the broader spirit and scope as set forth in the following claims. The specification and drawings are, accordingly, to be regarded in an illustrative sense rather than a restrictive sense.