In some cases, an individual may request delivery of one or more items within a relatively short period of time from when the items are purchased or ordered. Some carrier services may offer same day delivery or delivery within a relatively short timeframe (e.g., hours, minutes, etc.). In that case, a carrier may dispatch a courier, for example, to deliver one or more items to the individual relatively quickly. Same day or short-timeframe deliveries, however, may be relatively costly because a carrier may need to reserve or requisition resources, such as couriers, drivers, delivery vehicles, etc., specifically for the deliveries.
Many aspects of the present disclosure can be better understood with reference to the following drawings. The components in the drawings are not necessarily to scale, with emphasis instead being placed upon clearly illustrating the principles of the disclosure. Moreover, in the drawings, like reference numerals designate corresponding parts throughout the several views.
When using a courier for delivery of an item to a delivery location, the courier's time and effort may be expended entirely for the delivery of the item, because the courier may not have other deliveries along the route to the delivery location. According to the embodiments described herein, to leverage the courier's time and effort in the delivery of an item, offers for other items may be presented to individuals along the carrier's route to the delivery location for the item. The offers may include offers to purchase other items carried by the courier along his route. For efficiency, the offers may be provided to one or more client devices operated by individuals that are located relatively close to or along the carrier's predetermined or expected route.
If one of the offers is accepted, the courier may receive an instruction to deliver one or more other items to a location associated with the client device from which the offer was accepted. Thus, after the courier completes the route for which he originally departed for, he may complete another delivery associated with another transaction at a location associated with the client device. The amount of time between when the offer is provided to the client device and the delivery at or near the location associated with the client device may be relatively small. Using location directed offers as described herein, couriers or carriers may be relied upon to expeditiously deliver items to other willing buyers along routes for other deliveries.
In the context outlined above, further aspects and embodiments of location directed offers are described herein.
Before turning to a more detailed description of the operation of the networked environment 100 with reference to
In turn, the computing environment 110 may provide instructions to a carrier 20 to deliver the item from the start/end location 22, where the item is picked or sourced for delivery, to the delivery location 24. In that context, the carrier 20 may be embodied as any entity that provides delivery services, such as a messenger, courier, express delivery service, or other related or similar delivery service entities. The carrier 20 may deliver the item to the delivery location 24 using any means of transportation, including by foot, bicycle, motor vehicle, etc. It should be appreciated, however, that the embodiments are not limited to delivery services which provide quick or on-demand deliveries. Further, in certain embodiments, the carrier 20 may also include delivery entities such as the United States Postal Service®, the United Parcel Service®, Federal Express®, or other related or similar delivery entities.
Before or during the delivery by the carrier 20, the location directed offer logic 130 may evaluate or estimate a route that the carrier 20 may take to the delivery location 24. The route may include an outbound route 32 and a return route 34, as shown in
The location directed offer logic 130 may then send offer notifications to the subset of participant client devices 14-17. As described in further detail below, the offer notifications may include offers to purchase items from the carrier 20 for expeditious delivery. In that context, the carrier 20 may carry various items for sale in addition to the item for delivery to the delivery location 24. The additional items may be selected based on the sales velocity (i.e., popularity, sales frequency, etc.) of the additional items, the ability and/or capacity of the carrier 20 to carry or transport the additional items, or other factors.
A user of the participant client device 14, for example, may receive an offer notification, which may include an offer to purchase an item for expeditious delivery, from the location directed offer logic 130 and accept the offer. The acceptance may be communicated to the computing environment 110 via the network 150. In response to the acceptance of the offer, the carrier 20 is notified of an additional delivery location for delivery of the item to a location near the participant client device 14. Thus, upon return of the carrier 20 from the delivery of the item at the delivery location 24, for example, the carrier 20 may also stop at the location of the participant client device 14 to deliver another item.
Thus, according to one aspect of the embodiments, using offers directed to the participant client devices 10-19, the carrier 20 may deliver a number of other items along or near the route to the delivery location 24, without (or substantially or without) impacting the original delivery to the delivery location 24. In that way, the effort of the carrier 20 in delivering to the delivery location 24 may be leveraged for the sale of other items. Further, users of the participant client devices 10-19 may receive the benefit of expeditious delivery at their current locations at a relatively low delivery cost. For example, when the user of the participant client device 14 stops to purchase coffee on his way to work, the user may be presented with an offer to purchase a book for expeditious delivery, and the carrier 20 may deliver the book to the user while he waits for his coffee.
According to another aspect of the embodiments, before the carrier 20 departs from the start/end location 22 to the delivery location 24, the location directed offer logic 130 may identify one or more items which may be likely to be purchased by users of the participant client devices 10-19, based on the purchase histories of the users, and direct the carrier 20 to bring or carry the one or more items. In that way, the location directed offer logic 130 may increase the likelihood that one or more of the users of the participant client devices 10-19 will accept an offer for expeditious delivery.
In still other aspects, after the user of the participant client device 14, for example, accepts an offer to purchase an additional item for expeditious delivery by the carrier 20, the location directed offer logic 130 may calculate an estimated time for delivery of the additional item to the user. The location directed offer logic 130 may also provide updates of the current location of the carrier 20 to the user of the participant client device 14 and give the user an option to cancel the purchase. In that way, if the estimated time is (or becomes) too long, then the user may cancel the order. Further, once the carrier 20 arrives at the location of the participant client device 14, the location directed offer logic 130 may verify the location of the participant client device 14 and/or the user of the participant client device 14. In response to a successful verification, the location directed offer logic 130 may complete a transaction for purchase of the additional item and notify the carrier 20 and the participant client device 14 that the transaction is complete. These and other aspects of the embodiments are described in further detail below with reference to the remaining figures.
The computing environment 110 may be embodied as one or more computers, computing devices, or computing systems. In certain embodiments, the computing environment 110 may include one or more computing devices arranged, for example, in one or more server or computer banks. The computing device or devices may be located at a single installation site or distributed among different geographical locations. As further described below in connection with
The network 150 may include the Internet, intranets, extranets, wide area networks (WANs), local area networks (LANs), wired networks, wireless (e.g., cellular, 802.11-based (WiFi), bluetooth, etc.) networks, cable networks, satellite networks, other suitable networks, or any combinations thereof. It is noted that the computing environment 110 may communicate with the carrier client device 160, the participant client devices 10, and the electronic commerce platform 180 using various systems interconnect models and/or protocols such as hypertext transfer protocol (HTTP), simple object access protocol (SOAP), representational state transfer (REST), real-time transport protocol (RTP), real time streaming protocol (RTSP), real time messaging protocol (RTMP), user datagram protocol (UDP), internet protocol (IP), transmission control protocol (TCP), and/or other protocols for communicating data over the network 150, without limitation. It is noted here that, although not illustrated, the network 150 may include connections to any number of network hosts, such as website servers, file servers, networked computing resources, databases, data stores, or any other network or computing architectures.
The carrier client device 160 is representative of one or more client devices which may be relied upon by the carrier 20 to perform, track, and administer deliveries. The carrier client device 160 may be embodied as any type of computing device, processing circuit, or processor based device or system used by the carrier 20, including those embodied in the form of a desktop computer, a laptop computer, a personal digital assistant, a cellular telephone, or a tablet computer, among others. The carrier client device 160 may include one or more system devices or subsystems, such as wireless communications transceivers, GPS receivers, orientation and acceleration sensors, etc. The carrier client device 160 may also include one or more peripheral devices. In this context, the peripheral devices may include one or more input devices, such as a bar or quick response (QR) code scanner, a keyboard, keypad, touch pad, touch screen, microphone, camera, etc.
As illustrated in
The participant client device 10 is representative of various participant client devices, such as the other participant client devices 11-19 in
As illustrated in
The electronic commerce platform 180 may be embodied as a computer, computing device, or computing system that operates as an electronic commerce platform for selling goods or services. In certain embodiments, the electronic commerce platform 180 may be similar in composition to the computing environment 110, including one or more computing devices arranged, for example, in one or more server or computer banks. Generally, the computing environment 110 may access or refer to the electronic commerce platform 180 to identify user history data, such as that related to the history of browsing activity, interests, or purchases of users, for example.
Turning back to the components of the computing environment 110, the directed offer data store 120 includes item data 122, participant data 124, and participant client device data 126. The item data 122 includes data on various items which may be offered for sale by the electronic commerce engine 140, as described in further detail below. The item data 122 may include price data, quantity data, availability data, item detail data, item location data, item sales volume or velocity data, item review data, etc. for various items. In some embodiments, the item data 122 may include data on items or services sold or performed by one or more vendors and/or service providers at various locations (e.g., from one or more kiosks, brick and mortar stores, restaurants, vendors, fulfillment centers, etc.).
The participant data 124 may include data on one or more users of the participant client devices 10-19. For example, the participant data 124 may include username and password combinations, name, address, and billing information, form of payment information, contact information, purchase history data, etc. Generally, when a user of the participant client device 10, for example, installs the directed offer application 172 for the first time, the user may be requested to agree to certain terms and conditions and create an account with the computing environment 110. The account information for the user may be stored as the participant data 124.
The participant client device data 126 may include data on one or more participant client devices, such as the participant client devices 10-19, among others. For example, the participant client device data 126 may include unique identifier information, such as media access control (MAC) identifier data, device type, model, or operating system information data, software version information, and other related client device data. The participant client device data 126 may also include location information for participant client devices. The location information may include global positioning data (e.g., latitude and longitude data), for example, received from various participant client devices over time.
The location directed offer logic 130 includes a route evaluator 132, proximity calculator 134, offer engine 136, and transaction processor 138. As described in further detail below with reference to the process diagrams of
The proximity calculator 134 is configured to identify participant client devices, such as the participant client devices 10-19, which are along the route identified by the route evaluator 132. For example, once a likely route of the carrier 20 is estimated, the proximity calculator 134 may identify all participant client devices 10 within a certain distance from the route. The distance may be larger or smaller, for example, depending upon the means of transportation relied upon by the carrier 20 or other factors described below. The proximity calculator 134 may be configured to first identify a number of the participant client devices 10-19 which are within a relatively wide range of the route of the carrier 20, and then reduce the number to a smaller subset of the participant client devices 10-19.
It is noted that the proximity calculator 134 need not identify the subset of the participant client devices 10-19 on the basis of proximity to the route of the carrier 20 alone. Instead, the proximity calculator 134 may identify or select one or more of the participant client devices 10-19 based on other considerations, such as the likelihood that users of the participant client devices 10-19 may accept offers, a purchase history of users, the relative movement of the users over time, etc. Thus, in various embodiments, the proximity calculator 134 may determine a subset of the participant client devices 10-19 based on the relative proximities of individual ones of the participant client devices 10-19 to the route of the carrier 20, the likelihood of acceptance of offers by the users of the participant client devices 10-19, the expected movements of the participant client devices 10-19 over time, the current location of the carrier 20, and other factors.
The offer engine 136 is configured to send offer notifications to the participant client devices 10-19 which were identified or selected by the proximity calculator 134. The offer notifications may include offers to purchase various items for expeditious delivery, for example, and different offers may be provided to individual ones of the participant client devices 10-19. An example of a user interface including an offer notification is illustrated in
The transaction processor 138 is configured to complete transactions associated with the offers provided by the offer engine 136. Particularly, the transaction processor 138 is configured to complete transactions for the purchase of the items or services offered for sale by the offer engine 136. The transaction processor 138 may also verify a confluence of the locations of the carrier client device 160 and one of the participant client devices 10-19 as a measure to verify that the carrier 20 has arrived at a delivery location associated an accepted offer. For example, if a user of the participant client device 10 accepts an offer provided by the offer engine 136, when the carrier 20 arrives at or approaches the location of the participant client device 10, then the transaction processor 138 may forward a secret code, such as a QR code or number, to the participant client device 10. The carrier 20 may then verify the user of the participant client device 10 (and the device 10 itself) by confirming the QR code or number. In one embodiment, the carrier 20 may use the carrier client device 160 to scan the QR code from a display screen of the participant client device 10. In turn, the carrier client device 160 may communicate with the transaction processor 138 to compare and verify the scanned QR code with the expected QR code. If verified, then the transaction processor 138 may proceed to complete the transaction for the offer provided by the offer engine 136 and notify the carrier 20 when the transaction is complete.
It is noted, however, that the embodiments include other ways of verifying the relative (and proximate) locations of the carrier client device 160 and the participant client devices 10-19. For example, proximity detection may be verified using near-field, Bluetooth®, or other radio frequency (RF) communications. Proximity may also be verified by exchanging certain audio signals between the carrier client device 160 and the participant client devices 10-19. Further, in some embodiments, facial recognition and/or the presentation of photographs of users may be relied upon. Additional aspects of the operation of the transaction processor 138 and the verification of users and devices are described below.
The electronic commerce engine 140 is representative of any electronic commerce engine or system configured to complete transactions for the purchase of items and/or services via the network 150. That is, the electronic commerce engine 140 may be configured to present an electronic commerce marketplace or storefront to various client devices (e.g., the participant client devices 10-19 and others) via the network 150. To that end, the electronic commerce engine 140 may generate various network pages which offer items and/or services for sale. Once a transaction is completed through the electronic commerce engine 140, it may contact the carrier 20, for example, to deliver an item to a certain delivery location (e.g., the delivery location 24 in
Thus, the sale of items through the electronic commerce engine 140 may trigger the operation of the location directed offer logic 130. More particularly, once a transaction is completed through the electronic commerce engine 140, the electronic commerce engine 140 may provide the details of the transaction to the location directed offer logic 130. The details may identify the carrier 20, a delivery location where the carrier 20 is expected to deliver an item pursuant to the transaction, an expected departure time of the carrier 20 in making the delivery, and an estimated and/or promised delivery time. Using those details, the location directed offer logic 130 may proceed to evaluate a route for the carrier 20, identify the participant client devices 10-19 along the route, send offer notifications to one or more of the participant client devices 10-19, and, if the offers are accepted, forward additional delivery locations to the carrier 20 based on the accepted offers. The location directed offer logic 130 may also make suggestions as to which other items the carrier 20 should carry during the delivery. In alternative embodiments, the electronic commerce engine 140 may be separate from the computing environment 110. Further, the location directed offer logic 130 may receive the transaction details from other computing systems and/or entities, such as the electronic commerce platform 180.
Referring first to
At reference numeral 304, the process 300 includes evaluating a route for the delivery to the delivery location 24. Here, the route evaluator 132 (
As illustrated in
At reference numeral 306, the process 300 includes identifying participant client devices along the route estimated at reference numeral 304. In this context, the proximity calculator 134 (
When identifying the participant client devices 10-19 at reference number 306, the proximity calculator 134 may also identify certain characteristics associated with the participant client devices 10-19, such as the speed and direction of travel of the participant client devices 10-19 (if any), among other characteristics. The proximity calculator 134 may use this information to determine which of the participant client devices 10-19 to provide offer notifications to, as described below.
At reference numeral 308, the process 300 includes determining or identifying a subset of the plurality of participant client devices 10-19 identified at reference numeral 306 based on one or more factors. More particularly, the proximity calculator 134 may determine the subset of the plurality of participant client devices 10-19. It is noted however that, if the number of participant client devices identified at reference numeral 306 is low (e.g., one), determining a subset at reference numeral 309 may be omitted from the process 300.
Among the embodiments, the proximity calculator 134 may determine the subset based on various considerations, such as a proximity of each of the plurality of participant client devices 10-19 to the route segments 72, 74, and 76 (e.g., the certain proximity 40 in
Referring to
As other examples, based on the speed and direction 82 of the participant client device 12, the proximity calculator 134 may select the participant client device 12 to be included in the subset, because the location of the participant client device 12 is likely to substantially align with the location of the carrier 20 on the return route 76 at an estimated time in the future. On the other hand, based on the speed and direction 84 of the participant client device 10, the proximity calculator 134 may not select the participant client device 10, because it is unlikely to align with the location of the carrier 20 on the return route 76.
As still another example, if the carrier 20 is only capable of carrying one additional copy of a certain book, then the proximity calculator 134 may select the participant client device 13 to be included in the subset rather than the participant client device 15, although the participant client device 15 is closer to the return route 76, so long as the participant data 124 indicates that the user of the participant client device 13 is more likely to be interested in the book than the user of the participant client device 15.
At reference numeral 310, the process 300 includes identifying one or more additional items to be carried by the carrier 20 during the delivery to the delivery location 24. These additional items may be those likely to be accepted for purchase by users of the participant client devices 10-19, for example. The identifying may be directed to the users of the devices identified and/or determined at reference numerals 306 and/or 308.
In one embodiment, the offer engine 136 may reference the participant data 124 to review the purchase history of the users of the participant client devices 10-19, in an attempt to predict or anticipate which items may be desired by the users. The offer engine 136 may also reference data stored by the electronic commerce platform 180 or other entities to the extent that such data is representative of the purchase history of the users. If the data is unavailable or inconclusive, then the offer engine 136 may simply identify items which are known to be high velocity or popular items. The offer engine 136 may also reference the item data 122 to identify which items are available for pickup by the carrier 20 at the pickup location 23 (or other locations). At reference 310, the process 300 also includes instructing the carrier 20 to carry the additional identified items. In other embodiments, the process may omit the identifying at reference numeral 310. For example, the carrier 20 may only carry one or more types of additional items, and these items may be known by the offer engine 136.
Before turning to reference numeral 312, it is noted that, among embodiments, the carrier 20 may depart for delivery of the item ordered at reference numeral 302 at any suitable time during the flow of the process 300. In other words, the carrier 20 may depart for delivery before or after the identification of items at reference numeral 310. While it may be preferred for the carrier 20 to depart after receiving the instructions regarding which additional items to carry, the carrier 20 may depart earlier than reference numeral 310. In that sense, it is also noted that sending offer notifications, as described below at reference numeral 312, may also occur before or after the carrier 20 has departed for delivery.
At reference numeral 312, the process 300 includes sending an offer notification to each of the participant computing devices determined in the subset at reference numeral 308. Referring to
As illustrated in
In the embodiment shown in
At reference numeral 330, the offer engine 136 may determine if the offer expiration time has expired. It is noted that, at least in one embodiment, offers sent by the offer engine 136 are limited in duration. In that way, if a user of the participant client device 13 does not notice or ignores the offer, it may be provided to another participant client device after the offer expiration time. If the offer expiration time has expired, then the process proceeds to reference numeral 332, which includes sending a follow-up offer to the user of the participant client device 13. After sending the follow-up offer at reference numeral 332, the process 300 proceeds back to reference numeral 316 in
Referring back to
At reference numeral 336, the process 300 includes reevaluating the route of the carrier 20 and identifying current locations of the carrier 20 and the participant client device 13. Particularly, the route evaluator 132 may identify a current location of the carrier 20 and the participant client device 13 at the time of the acceptance of the offer. It is noted that, at least in one embodiment, it is not required that the carrier 20 follow any specific route. Thus, the route evaluator 132 may reevaluate the current location of the carrier 20 with respect to the current location of the participant client device 13 after the acceptance of the offer is received from the participant client device 13. It is also noted that, according to aspects of the embodiments, the location directed offer logic 130 may periodically receive location data from various participant and carrier client devices.
At reference numeral 337, the process 300 includes forwarding additional order details to the carrier 20. More particularly, the offer engine 136 may forward to the carrier client device 160 (
At reference numeral 338, the process 300 includes calculating an estimated delivery time for delivery to the location of the participant client device 13. Here, the route evaluator 132 may calculate the estimated delivery time. At reference numeral 340, the process 300 includes communicating the delivery time to the participant client device 13.
Referring back to
Referring back to
According to other aspects of the embodiments,
At reference numeral 362, the process 360 includes determining whether the carrier 20 is proximate or within a certain distance to the participant client device 13. In that context, after an offer is accepted by the user of the participant client device 13, the transaction processor 138 may determine whether the carrier 20 is relatively close to or approaching the participant client device 13. If so, the process 360 proceeds to reference numeral 364. Otherwise, the process proceeds back to reference numeral 362.
At reference numeral 364, the process 360 includes the transaction processor 138 forwarding verification information to the participant client device 13. For example, the transaction processor 138 may forward a secret code, such as a QR code or number, to the participant client device 13. In that context,
At reference numeral 364, the embodiments may include any suitable way of verifying participant client devices. For example, proximity detection may be verified using near-field, Bluetooth®, or other radio frequency (RF) communications. Proximity may also be verified by exchanging certain audio signals between the carrier client device 160 and the participant client devices 10-19. Further, in some embodiments, facial recognition and/or the presentation of photographs of users may be relied upon. If a QR code is communicated to the participant client device 13, the carrier 20 may use the carrier client device 160, for example, to scan the QR code from the display screen of the participant client device 13. In turn, the carrier client device 160 may communicate with the transaction processor 138 to compare and verify the scanned QR code with an expected one at reference numeral 366.
If the participant client device 13 is verified, then the transaction processor 138 may proceed to complete the transaction at reference numeral 368. Otherwise, the process 360 waits at reference numeral 366 for at least a reasonable period of time for a delivery verification to occur before the additional delivery is cancelled.
As noted above, once the participant client device 13 is verified at reference numeral 366, the process proceeds to reference numeral 368 where the transaction processor 138 proceeds to complete the transaction for the purchase of the additional item by the user of the participant client device 13. The transaction processor 138 may use standard billing and/or payment information for the user, as stored in the participant data 124, to complete the transaction.
Finally, at reference numeral 370, the process 300 includes the transaction processor 138 notifying the carrier 20 that the transaction with the user of the participant client device 13 is complete. That notification may be provided to the carrier client device 160. The process 300 may also include sending a notification to the participant client device 13, an example of which is shown in
In various embodiments, the memory 604 stores data and software or executable-code components executable by the processor 602. For example, the memory 604 may store executable-code components associated with the location directed offer logic 130 and the electronic commerce engine 140 for execution by the processor 602. The memory 604 may also store data such as that stored in the directed offer data store 120, among other data.
It should be understood and appreciated that the memory 604 may store other executable-code components for execution by the processor 602. For example, an operating system may be stored in the memory 604 for execution by the processor 602. Where any component discussed herein is implemented in the form of software, any one of a number of programming languages may be employed such as, for example, C, C++, C#, Objective C, JAVA®, JAVASCRIPT®, Perl, PHP, VISUAL BASIC®, PYTHON®, RUBY, FLASH®, or other programming languages.
As discussed above, in various embodiments, the memory 604 stores software for execution by the processor 602. In this respect, the terms “executable” or “for execution” refer to software forms that can ultimately be run or executed by the processor 602, whether in source, object, machine, or other form. Examples of executable programs include, for example, a compiled program that can be translated into a machine code format and loaded into a random access portion of the memory 604 and executed by the processor 602, source code that can be expressed in an object code format and loaded into a random access portion of the memory 604 and executed by the processor 602, or source code that can be interpreted by another executable program to generate instructions in a random access portion of the memory 604 and executed by the processor 602, etc. An executable program may be stored in any portion or component of the memory 604 including, for example, a random access memory (RAM), read-only memory (ROM), magnetic or other hard disk drive, solid-state, semiconductor, or similar drive, universal serial bus (USB) flash drive, memory card, optical disc (e.g., compact disc (CD) or digital versatile disc (DVD)), floppy disk, magnetic tape, or other memory component.
In various embodiments, the memory 604 may include both volatile and nonvolatile memory and data storage components. Volatile components are those that do not retain data values upon loss of power. Nonvolatile components are those that retain data upon a loss of power. Thus, the memory 604 may include, for example, a RAM, ROM, magnetic or other hard disk drive, solid-state, semiconductor, or similar drive, USB flash drive, memory card accessed via a memory card reader, floppy disk accessed via an associated floppy disk drive, optical disc accessed via an optical disc drive, magnetic tape accessed via an appropriate tape drive, and/or other memory component, or any combination thereof. In addition, the RAM may include, for example, a static random access memory (SRAM), dynamic random access memory (DRAM), or magnetic random access memory (MRAM), and/or other similar memory device. The ROM may include, for example, a programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), or other similar memory device.
Also, the processor 602 may represent multiple processors 602 and/or multiple processor cores and the memory 604 may represent multiple memories that operate in parallel, respectively, or in combination. Thus, the local interface 606 may be an appropriate network or bus that facilitates communication between any two of the multiple processors 602, between any processor 602 and any of the memories 604, or between any two of the memories 604, etc. The local interface 606 may include additional systems designed to coordinate this communication, including, for example, a load balancer that performs load balancing. The processor 602 may be of electrical or of some other available construction.
As discussed above, the location directed offer logic 130 may be embodied, in part, by software or executable-code components for execution by general purpose hardware. Alternatively the same may be embodied in dedicated hardware or a combination of software, general, specific, and/or dedicated purpose hardware. If embodied in such hardware, each can be implemented as a circuit or state machine, for example, that employs any one of or a combination of a number of technologies. These technologies may include, but are not limited to, discrete logic circuits having logic gates for implementing various logic functions upon an application of one or more data signals, application specific integrated circuits (ASICs) having appropriate logic gates, field-programmable gate arrays (FPGAs), or other components, etc. Such technologies are generally well known by those skilled in the art and, consequently, are not described in detail herein.
The flowchart or process diagrams in
Although the flowchart or process diagrams in
Also, any logic or application described herein, including the location directed offer logic 130 that are embodied, at least in part, by software or executable-code components, may be embodied or stored in any tangible or non-transitory computer-readable medium or device for execution by an instruction execution system such as a general purpose processor. In this sense, the logic may be embodied as, for example, software or executable-code components that can be fetched from the computer-readable medium and executed by the instruction execution system. Thus, the instruction execution system may be directed by execution of the instructions to perform certain processes such as those illustrated in
The computer-readable medium can include any physical media such as, for example, magnetic, optical, or semiconductor media. More specific examples of suitable computer-readable media include, but are not limited to, magnetic tapes, magnetic floppy diskettes, magnetic hard drives, memory cards, solid-state drives, USB flash drives, or optical discs. Also, the computer-readable medium may include a RAM including, for example, an SRAM, DRAM, or MRAM. In addition, the computer-readable medium may include a ROM, a PROM, an EPROM, an EEPROM, or other similar memory device.
Further, any logic or application(s) described herein, including the adaptive topic logic, may be implemented and structured in a variety of ways. For example, one or more applications described may be implemented as modules or components of a single application. Further, one or more applications described herein may be executed in shared or separate computing devices or a combination thereof. For example, a plurality of the applications described herein may execute in the same computing device, or in multiple computing devices in the same computing environment 110. Additionally, it is understood that terms such as “application,” “service,” “system,” “engine,” “module,” and so on may be interchangeable and are not intended to be limiting.
Disjunctive language, such as the phrase “at least one of X, Y, or Z,” unless specifically stated otherwise, is to be understood with the context as used in general to present that an item, term, etc., may be either X, Y, or Z, or any combination thereof (e.g., X, Y, and/or Z). Thus, such disjunctive language is not generally intended to, and should not, imply that certain embodiments require at least one of X, at least one of Y, or at least one of Z to be each present.
It should be emphasized that the above-described embodiments of the present disclosure are merely possible examples of implementations set forth for a clear understanding of the principles of the disclosure. Many variations and modifications may be made to the above-described embodiment(s) without departing substantially from the spirit and principles of the disclosure. All such modifications and variations are intended to be included herein within the scope of this disclosure and protected by the following claims.