Patent ID: 12217301

DETAILED DESCRIPTION

The present description is drawn to one or more non-limiting embodiments for a quick service restaurant (QSR) facility that has an improved system and method for coordinating pick up at a correct time for online orders made in advance of arriving at the QSR facility. The system described herein in one or more non-limiting embodiments aims to reduce the wait time and reduce vehicle congestion and traffic for customers and/or delivery drivers who intend to pick up online orders made in advance of arriving at the drive through stores associated with the QSR facility. Further details are provided below with respect to the Figures.

FIG.1andFIG.2show an exemplary pictorial illustration of a quick service restaurant (QSR) facility102in accordance with one or more non-limiting embodiment. A quick service restaurant (QSR) location such as QSR facility102is known for multiple restaurants categorized by fast service, and a focused menu. In a non-limiting embodiment, the QSR facility102shown inFIG.1and inFIG.2may be a facility that has a physical location at a particular site. The facility itself is a building or structure arranged to have multiple drive through restaurants. For example, as shown inFIG.1, there may be four drive through restaurants104a,104b,104c,104d. The term “restaurant” as used herein may interchangeably be used with the term “store.”

Each drive through restaurant104a,104b,104c, and104dmay have its own drive through lane106a,106b,106c,106dfor vehicles, such as vehicles108a,108b,108c, and108dto drive through to reach the drive through window or access point110a,110b,110c, and110d. It is noted that the QSR facility102may have more than four drive through enabled restaurants, such as104a-104d, including up to a much greater number or may have less than four drive through enabled restaurants104. The number and arrangement of drive through restaurants104a-104dshown inFIG.1is exemplary and non-limiting.

The drive through restaurants104a-104dmay each have their own brand or specialization of food and/or drink offerings according to one or more non-limiting embodiments. For example, as shown inFIG.1, a first drive through restaurant104amay offer pizza, a second drive through restaurant104bmay offer donuts, a third drive through restaurant104cmay offer hot dogs, and a fourth drive through restaurant104dmay offer burritos. This is an example only and instead of type of food and/or drinks being written on the banner/signs of the QSR facility102, the name of the drive through restaurant102may be written and displayed on the building/structure for the QSR facility102. A variety of signs may be provided having different descriptions and restaurant names on the exterior surfaces of the QSR facility102. Notably, the QSR facility102is configured to have multiple drive through lanes106a-106dsuch that the vehicles108a-108daccess the individual restaurants104a-104dprimarily and exclusively from the drive through lanes106a-106dto obtain their finalized orders. The QSR facility102is a quick service structure that houses multiple types and brands associated with drive through stores104that can quickly and efficiently process vehicular traffic and flow through the QSR facility102and through designated drive through lanes106and in the waiting area426(e.g., as shown inFIG.4and inFIG.5).

FIG.3provides a block diagram of an exemplary set of components that make up the system for ordering food, drink, and/or non-food or drink items from the QSR facility102.FIG.4provides a block diagram of additional exemplary components that make up the system for ordering online orders (e.g., online orders310) available for pick up from a particular drive through restaurant104at the QSR facility102.

In one embodiment, the restaurants104of the QSR facility102only provide orders to customers302and/or any associated delivery drivers320if the customers302have purchased their online orders310in advance of arrival at the drive through access lanes106a-106dusing one or more merchant applications306associated with each drive through restaurant104. Accordingly, the customer302, in a non-limiting embodiment, has to make selections for pick up from the drive through restaurants104using an online merchant application306, and not through traditional in person means at the drive through restaurant104of the QSR facility102. Accordingly, preferably, the customer302does not come to the QSR facility102to place an order for fulfillment from an ordering panel/display panel in front of the entrance to the drive through restaurant104and/or drive through lane106at the QSR facility102. Rather, the customer302accesses a merchant application/module306using his or her customer computing device304and places an online order310for pick up from the one or more drive through restaurants104a-104dat the QSR facility102.

The merchant application306may be available as an application on the customer's302smartphone, tablet, computer, or other type of computing device304. Further, the merchant application306may be accessible as a downloadable application on the customer computing device304or as a web service application. The merchant application306may be created exclusively for the specific drive through restaurant104and be a mobile merchant application that is solely associated with a drive through restaurant104. Alternatively, the merchant application306may be associated with a third-party application that facilitates online ordering for a number of restaurants and locations. Some examples of such third-party applications include, but are not limited, to UBER EATS, DOORDASH, FAVOR, etc.

The online order310created by the customer302and provided through the merchant application306is communicated over a network314to the QSR facility102(and more specifically one or more drive through restaurant or store104of the QSR facility102as shown inFIG.1). The system accordingly includes a network314which may include the Internet, LAN, WAN, wireless communication systems, cellular communication systems, telephony or other types of communication systems or protocols over which data is transmitted and communicated.

The online order310comprises the food, drink, and/or other items available for selection and purchase through the merchant application306and available for pick up from the drive through restaurant104at the QSR facility102.

In a non-limiting embodiment, there may be a delivery service provider with an associated delivery service application316that can pick up the online order310instead of the customer302. Drivers320associated with the delivery service provider and the delivery service application316may have access to the merchant application306and/or OLO312(as further described below) to receive notifications of pending online orders310that are requiring pick up from the QSR facility102. In a non-limiting embodiment, the customer302can specify when the customer302schedules the online order310whether the customer302will be picking up the online order310from the QSR facility102or the online order310will be picked up on the customer302's behalf by a driver320.

In a non-limiting embodiment, a quick service restaurant (QSR) module308may be integrated with the merchant application306and also with any applications associated with the delivery service provider. The QSR module308is a computer program that communicates with the front end and back end system of each drive through restaurant104at the QSR facility102. The QSR module308enables a user, whether the customer302or the driver320, to receive relevant information from the drive through restaurant104at the QSR facility102, including for example, the identifying gate entry code410and the arrival time412for the user (e.g., customer302or driver320) to pick up the fulfilled order414as further explained below. The QSR module308may be hosted on one or more servers located at the drive through store104and/or any other location, including server404as shown inFIG.4, and managed by an administrative entity responsible for the QSR module308. The administrative entity may be associated with the QSR facility102and/or each particular drive through restaurant104.

The QSR module308is enabled to provide relevant data from the merchant application306about the customer304to the computing system402of each relevant drive through store104in one or more non-limiting embodiments. The QSR module308may also communicate over the network314the relevant customer data to the driver320via the driver device318if a driver320is enabled to pick up the online order310for the customer302. Such relevant customer data may include a phone number associated with the customer302that can be obtained from the merchant application306used to make the online order310. Other types of customer data may also be relevant including, but not limited to, email address and/or physical address associated with the customer. In particular, it may be useful to obtain the customer phone number associated with the customer302who initially placed the online order310in order to be able to communicate the identifying gate entry code410and the arrival time412to the customer302in one non-limiting embodiment. If the driver320is enabled or selected to pick up the online order310from the drive through restaurant104at the QSR facility102, the QSR module308can also communicate relevant information from the computing systems402of the drive through restaurant104to the driver computing device318via the QSR module308that is integrated in the delivery service provider applications316associated with delivery drivers.

FIG.4shows additional information related to the system associated with picking up online orders310that become fulfilled orders414at the drive through restaurant104of the QSR facility102. As noted above, each drive through restaurant104includes its own computing system402, which may be similar to computer system700as shown inFIG.7. The computing system402at each drive through restaurant104may include one or more computing devices having various interfaces for communicating with the customer device304and/or a driver device318. In a non-limiting embodiment, the QSR module308is integrated and/or downloaded on one or more computing devices of the computing system402of each drive through restaurant104. Any computer program information and modules, including the QSR module308, may be hosted on one or more servers404associated with either each drive through restaurant104or the QSR facility102as a whole. The online order310is communicated to the computing system402and/or the online QSR module308of the drive through store104. In a non-limiting embodiment, the merchant application306may have a module and/or interfaces that are accessible by and available to the computing system402as well.

In a non-limiting embodiment, each drive through restaurant104includes a gate418that acts as a barrier gate418to grant and/or deny access to the drive through lane106and/or drive through window or access point110at the drive through restaurant104. The barrier gate418can be any form of security and/or parking gate. The gate418may include a form of a movable arm that extends up and down after a correct code or information is entered into the selection panel422of the gate418at the dedicated drive through lane106for each particular drive through restaurant104at the QSR facility102. Alternatively, the barrier gate418may include a fence or gate that retracts and extends ahead of a vehicle108entering the drive through lane106of each drive through restaurant104. Various forms of barrier gates418may be utilized without limitation thereto.

It is noted that the selection panel422may also be referred to as a display panel configured to receive information in alphanumeric form at the selection panel422. Additionally, or alternatively, the selection panel422can process QR code information or other type of barcodes. In a non-limiting embodiment, the barrier gate418includes an operating system420. The operating system420of the gate418may include one or more power sources, cameras, speaker, microphone and/or sensors. The gate418may further include its own processing units424, including one or more processors, to process electronic information communicated to the barrier gate418and/or to and from the computing system402of the drive through restaurant104. The gate418is intended to be in electronic communication and in signal communication with the computing systems402, QSR module308, and/or server404associated with the drive through restaurant104.

In a non-limiting embodiment, the gate418acts as a mechanism to manage vehicle flow and access to the drive through restaurant104. The customer302and/or pickup driver320is provided with an identifying gate entry code410to be granted access through the gate418located ahead of the drive through lane106of the drive through restaurant104. In a non-limiting embodiment, the customer302and/or delivery driver320is also provided with an arrival time412. The identifying gate entry code410and the arrival time412are also communicated to the processing units424of the gate418. The gate418is programmed or enabled to only grant access to the user (who is likely either the customer302or the driver320) who provides the identifying gate entry code410either the same time as the arrival time412or after the arrival time412has occurred. When the user enters the identifying gate entry code410at the same time or after the arrival time412has passed and occurred, then the gate418will grant access to the vehicle of the user to drive through the drive through lane106associated with the particular drive through store104having the fulfilled order414of the user (based off of the original online order310entered by the customer302in the mobile merchant application306). Accordingly, any barrier arms or gates or fences associated with the gate418may be lifted and/or pulled away to allow access to the user's vehicle (e.g., vehicles108a,108b,108c, and108das shown inFIG.1and inFIG.5) at the QSR facility102. However, if the user tries to enter the identifying gate entry code410before the arrival time412has occurred, such that the user has arrived too early, the gate418does not open and does not grant access to the user or the user's vehicle to pass through the gate418. Rather, the user is directed to a dedicated waiting area426that is part of the layout and makeup of the QSR facility102. Accordingly, the gate418and the customer302and/or the driver320all receive the identifying gate entry code410and arrival time412from the computing system402of the drive through store104.

In a non-limiting embodiment, if the online order310has been fulfilled and is ready as a fulfilled order414for pickup prior to the estimated arrival time412, the gate418may be communicated with by the computing system402to allow access based on the identifying gate entry code410being entered.

In a non-limiting embodiment, the QSR module308can communicate the identifying gate entry code410and arrival time412to the customer device304and/or driver device318in any number of ways. In one embodiment, the QSR module308integrated into the computer system402at the drive through restaurant104is able to communicate the identifying gate entry code410and arrival time412to the QSR module308integrated into the mobile merchant application (or “app”)306which can then communicate the identifying gate entry code410and arrival time412to the monitoring customer302and/or driver320. The identifying gate entry code410and arrival time412may be made available through interfaces of the merchant application306that are viewable on the computing device304of the customer302or the computing device318of the driver320. Alternatively, the identifying gate entry code410and arrival time412may be communicated as a text message to the mobile computing device304of the customer302or the mobile computing device318of the driver320. This may be performed automatically by coordinating the communication of the identifying gate entry code410and arrival time412through the QSR module308or another module associated with the drive through restaurant104to the customer device304and/or to the driver device318. In a non-limiting embodiment, an employee at the drive through restaurant104can manually enter the identifying gate entry code410and arrival time412in a computing device associated with the computing system402of the drive through restaurant104such that the identifying gate entry code410and arrival time412are communicated via text message or another form of communication to the customer device304and/or the driver device318(e.g., via the phone number associated with the customer302and/or the driver320). Accordingly, the identifying gate entry code410and arrival time412are transmitted through the computing system402of the drive through restaurant104, including, but not limited, by using a device associated with the POS system406of the drive through restaurant104at the QSR facility102.

In a non-limiting embodiment, the QSR module308for both the online merchant application306and the delivery service provider application316may be in communication with a platform known as OLO312, which is shown inFIG.3. OLO is a well known online ordering platform that allows restaurants to manage mobile device orders and allows customers to place restaurant orders, such as through the merchant application306associated with each drive through store104at the QSR facility102, from multiple origination points such as from multiple customer devices304. OLO312includes its own software that communicates with merchant application306and also with the delivery service provider application316.

In a non-limiting embodiment, the APIs (Application Programming Interfaces) of the QSR module308associated with the merchant application306, the delivery service provider application316, and/or the computing system402of the drive through stores104is in communication with OLO312. Through this communication with OLO via the APIs, the QSR module308associated with the computing system402in each drive through store104may be able to obtain relevant customer data and/or driver data to communicate to the customer302and to the driver320the identifying gate code entry410and the arrival time412. In a non-limiting embodiment, the primary means of communication with the customer302and/or driver320designated to pickup the fulfilled order414may be through the telephone number associated with a customer device304or driver device318for the customer302or the driver320respectively. Additional relevant information such as email addresses obtainable via the QSR module308and/or the OLO platform312may also be communicated to the drive through restaurants104of interest at the QSR facility102so that the identifying gate entry code410and the arrival time412may be communicated via email and/or telephone (e.g., as a text message) to the relevant customer devices304and/or driver devices318.

It is noted that in a non-limiting embodiment, there may be a bypass function or feature incorporated into the computing systems402and devices of the drive through stores104that allows the workers of the drive through store104to bypass the identifying gate entry code410being correct and/or the arrival time412having occurred in order for the gate418to automatically open and provide access to the drive through store104. Rather, the bypass function may be selected that allows a worker, including management of the drive through store104, to open the gate418from the interior of the drive through store104if needed to allow users or other parties to pass through the gate418. This may be necessary if circumstances arise and the gate418stops working properly for some reason and/or if deliveries need to be made and access through the gate418is required. There may be a myriad of reasons why the bypass function may be selected by a worker within the drive through restaurant104to bypass denying access to a particular vehicle108.

In a non-limiting embodiment, the system at the QSR facility102may also utilize a user identifying device426in order to ensure that a correct order is provided to the correct recipient associated with the fulfilled order414. In a non-limiting embodiment, the user identifying device426may be a scanner, including a barcode scanner. For every fulfilled order414that is made ready for pick up from the drive through lane access point110, there may be a barcode included on a label that is attached to or adhered to (e.g., via tape) the physical packaging of the order. In a non-limiting embodiment, the barcode may be the same as the unique identifying gate entry code410provided to the customer302and/or the driver320. When the user identifying device426scans the barcode, the same identifying gate entry code410as entered by the recipient should appear on one or more computing devices for the computing system402of the drive through store104to ensure that the particular order matches the online order310intended to be picked up by the particular customer302and/or driver320. In a non-limiting embodiment, each identifying gate entry code410is unique to each user and is not generic. Further, in a non-limiting embodiment, each identifying gate entry code410may be the same as the order number associated with the order.

Further, in a non-limiting embodiment, the waiting area426may include numbered spots or regions to which the user (e.g., customer302or driver320) may be directed to wait if the user arrives before the arrival time412that the online order310becomes the fulfilled order414and is ready for pick up. The selection panel422at the gate418or another device associated with the gate418may display the numbered spot to direct the user to when the gate418denies access through the gate to the drive through lane106associated with the drive through store104if the user arrives too early (i.e., before the arrival time412). Further, the number for the numbered spot associated with the waiting area may be viewable and available to employees of the drive through store104as well in case the workers will physically bring the fulfilled order414to the waiting user in the waiting area426at a designated numbered spot. The term “numbered” as used in this context may include alphanumeric symbols and may also include other symbols, drawings, or imagery to communicate a designated waiting area for the user.

FIG.5shows a schematic of a top-down view of a QSR facility102according to an exemplary make up. As shown inFIG.5, there may be at least four drive through stores/restaurants104a,104b,104c, and104din a non-limiting embodiment. There may be a greater or lesser number of drive through stores104than shown inFIG.5in alternative embodiments.

As shown inFIG.5, each drive through store104has its own dedicated individual electronic barrier gate418that prevents entry into the drive through lane106and drive through access point110of each drive through store104unless the correct identifying gate entry code410and correct arrival time412is entered into the selection panel422of each gate418.

As shown inFIG.5, the drive through stores104a-104dall have physical structures built onto the premises of the QSR facility102. Each drive through store104a-104dmay have a dedicated drive through lane106(e.g., as shown inFIG.1) and each drive through store104a-104dmay be arranged in parallel to each other as shown inFIG.5. From the main access points502a,502b,502cof the QSR facility102, the vehicles108may drive to each drive through store104and be enabled to wait in front of the gate418a,418b,418c, and418dfor each drive through lane106a,106b,106c, and106dassociated with each drive through store104a,104b,104c, and104d. As shown for example, inFIG.5, vehicle108ais shown waiting in front of a selection panel422awhich is associated and operatively communicates with gate418a. Vehicle108bis shown waiting in front of selection panel422bwhich is associated and operatively communicates with gate418b. Vehicle108cis shown waiting in front of a selection panel422cwhich is associated and operatively communicates with gate418c. Vehicle108dis shown waiting in front of selection panel422dwhich is associated and operatively communicates with gate418d.

Each user of each vehicle108a-108dhas to enter in an identifying gate entry code410at each selection panel422a-422dfor each gate418a-418d. The processing units424of each gate418a-418dcompares the arrival time of the user with arrival time associated with the identifying gate entry code410and therefore with the intended user (e.g., customer302or driver320). If the processing units424of each gate418a-418ddetermine that the user is on time or the arrival time has passed and the identifying gate entry code410is valid, then the gates418a-418dopen and allow entry through to the main drive through lanes106a-106dof each drive through restaurant104a-104dso that the user can pick up their fulfilled order414and drive away from the QSR facility. However, if the processing units424of each gate418a-418ddetermine that the user is too early and the arrival time has not yet occurred, in one non-limiting embodiment, the user is directed to waiting area426that is made a part of the QSR facility102premises, as shown inFIG.5. Further, as noted above, each parking spot for the waiting area426may be numbered and the user is directed from the selection panel422displaying a particular numbered parking spot of the waiting area426in a non-limiting embodiment. Further, in other embodiments, the selection panel422may also provide an updated arrival time or a reminder of the arrival time associated with the identifying gate entry code410. The user may be directed to try again and return to the gate418a-418dassociated with the respective drive through store104when the arrival time412occurs in cases when the user is too early.

In other embodiments, there may be a built-in bypass function incorporated in the computing system402of the drive through store104so that the workers in the drive through restaurants104a-104dcan choose to allow the user through the gates418a-418dto the drive through lanes106a-106dand to pick up a fulfilled order414. The bypass feature allows the workers of the drive through store104the flexibility to open the gate418if needed and in case any unique circumstances occur. In general, it is intended that users will become accustomed to not arriving at the QSR facility102before the provided arrival time412, whereby the provided arrival time412coincides with the expected time needed to make the items ordered by the customer302. This procedure may help to avoid heavy traffic jams at the gates418of the drive through restaurants104at the QSR facility102because the users that arrive are aware that they should arrive on time or after the arrival time412communicated to the user.

In a non-limiting embodiment, when the user is granted access through gates418a,418b,418c, and418dto the particular drive through restaurant104a,104b,104c, and104d, it is intended that an orderly line of vehicles108may line up to access the drive through access point110and that the workers will have notice to some degree which users are arriving to collect fulfilled orders414by virtue of the identifying gate entry code410provided by the user at the gates418a-418d. Accordingly, the workers of the drive through store104may arrange any fulfilled orders414at the drive through access point110(e.g., window or other opening) in such a way as to make it easier to hand the packages of the fulfilled orders414to the vehicles108based on the order of the identifying gate entry codes410as entered by the users. Accordingly, the above described system and process may provide an improved means to organize and coordinate the pick up of online orders made in advance of arriving at the QSR facility102.

FIG.6is a flowchart of an exemplary process for coordinating the pickup of online orders310from the various drive through restaurants104at the QSR facility102. In a non-limiting embodiment, at602, the method may include receiving notification of an online order310made by a customer302through an online mobile merchant application306for a drive through store104of a QSR facility102. At step604, the method may include determining an identifying entry gate code410and arrival time412for an online order310to become a fulfilled order414. At step606, the method may include transmitting the identifying gate entry code410and the arrival time412to the customer302or driver320associated with the pickup of an online order310as obtained from the merchant application306and/or other applications316in one or more non-limiting embodiments. At step608, the computer implemented method may further include transmitting the identifying gate entry code410to the particular gate418for the particular drive through restaurant104. At step610, responsive to receiving the identifying gate entry code410at the gate418(which is presumably entered by either the customer302or the driver320), determining if the arrival time412that corresponds to the identifying gate entry code410has occurred or not. At step612, if it is determined that the arrival time412has occurred, the method includes allowing access to the customer302or the driver320through the gate418to the drive through lane106of the drive through store104to pick up the fulfilled order414that was based on the online order310. At step614, if the arrival time412has not yet occurred, the method may include denying access through the gate418and directing the customer302or the driver320to the waiting area426and to a particular designated area of the waiting area426.

FIG.7is a schematic diagram of a computer system700upon which embodiments of the present disclosure may be implemented and carried out. According to the present example, the computer system700includes a bus702(i.e., interconnect), one or more processors704, one or more communications ports714, a main memory706, removable storage media710, read only memory708, and a mass storage device712. Communication port(s)714may be connected to one or more networks by way of which the computer system700may receive and/or transmit data.

As used herein, a “processor” means one or more microprocessors, central processing units (CPUs), computing devices, microcontrollers, digital signal processors, or like devices or any combination thereof, regardless of their architecture. An apparatus that performs a process can include, e.g., a processor and those devices such as input devices and output devices that are appropriate to perform the process.

Processor(s) can be (or include) any known processor, such as, but not limited to, an Intel® Itanium® or Itanium 2® processor(s), AMD® Opteron® or Athlon MP® processor(s), or Motorola® lines of processors, and the like. Communications port(s) can be any of an RS232 port for use with a modem-based dialup connection, a 10/100 Ethernet port, a Gigabit port using copper or fiber, or a USB port, and the like. Communications port(s)14may be chosen depending on a network such as a Local Area Network (LAN), a Wide Area Network (WAN), a CDN, or any network to which the computer system700connects. The computer system700may be in communication with peripheral devices (e.g., display screen, input device(s)718) via Input/Output (I/O) port720. Some or all of the peripheral devices may be integrated into the computer system00, and the input device(s)718may be integrated into the display screen716(e.g., in the case of a touch screen). Additionally, sensors730having various sensing functions may be included as well as part of the computer system700.

Main memory can be Random Access Memory (RAM), or any other dynamic storage device(s) commonly known in the art. Read only memory can be any static storage device(s) such as Programmable Read Only Memory (PROM) chips for storing static information such as instructions for processor(s)704. Mass storage712can be used to store information and instructions. For example, hard disks such as the Adaptec® family of Small Computer Serial Interface (SCSI) drives, an optical disc, an array of disks such as Redundant Array of Independent Disks (RAID) and the Adaptec® family of RAID drives, or any other mass storage devices may be used.

Bus702communicatively couples processor(s) 04 with the other memory, storage and communications blocks. Bus702can be a PCI/PCIX, SCSI, a Universal Serial Bus (USB) based system bus (or other) depending on the storage devices used, and the like. Removable storage media710can be any kind of external harddrives, floppy drives, IOMEGA® Zip Drives, Compact Disc-Read Only Memory (CDROM), Compact Disc-ReWritable (CDRW), Digital Versatile Disk-Read Only Memory (DVDROM), etc.

Embodiments herein may be provided as one or more computer program products, which may include a machine readable medium having stored thereon instructions, which may be used to program a computer (or other electronic devices) to perform a process. As used herein, the term “machine readable medium” refers to any medium, a plurality of the same, or a combination of different media, which participate in providing data (e.g., instructions, data structures) which may be read by a computer, a processor, or a like device. Such a medium may take many forms, including but not limited to, nonvolatile media, volatile media, and transmission media. Nonvolatile media include, for example, optical or magnetic disks and other persistent memory. Volatile media include dynamic random-access memory, which typically constitutes the main memory of the computer. Transmission media include coaxial cables, copper wire and fiber optics, including the wires that comprise a system bus coupled to the processor. Transmission media may include or convey acoustic waves, light waves and electromagnetic emissions, such as those generated during radio frequency (RF) and infrared (IR) data communications.

The machine readable medium may include, but is not limited to, floppy diskettes, optical discs, CDROMs, magnetooptical disks, ROMs, RAMs, erasable programmable read only memories (EPROMs), electrically erasable programmable read only memories (EEPROMs), magnetic or optical cards, flash memory, or other type of media/machine readable medium suitable for storing electronic instructions. Moreover, embodiments herein may also be downloaded as a computer program product, wherein the program may be transferred from a remote computer to a requesting computer by way of data signals embodied in a carrier wave or other propagation medium via a communication link (e.g., modem or network connection).

Various forms of computer readable media may be involved in carrying data (e.g., sequences of instructions) to a processor. For example, data may be (i) delivered from RAM to a processor; (ii) carried over a wireless transmission medium; (iii) formatted and/or transmitted according to numerous formats, standards, or protocols; and/or (iv) encrypted in any of a variety of ways well known in the art.

A computer readable medium can store (in any appropriate format) those program elements that are appropriate to perform the methods.

As shown, main memory is encoded with application(s)722that support(s) the functionality as discussed herein (an application may be an application that provides some or all of the functionality of one or more of the mechanisms described herein). Application(s)722(and/or other resources as described herein) can be embodied as software code such as data and/or logic instructions (e.g., code stored in the memory or on another computer readable medium such as a disk) that supports processing functionality according to different embodiments described herein.

During operation of one embodiment, processor(s)704accesses main memory via the use of bus702in order to launch, run, execute, interpret, or otherwise perform the logic instructions of the application(s)722. Execution of application(s) produces processing functionality of the service(s) or mechanism(s) related to the application(s). In other words, the process(es) represents one or more portions of the application(s)722performing within or upon the processor(s)704in the computer system700.

It should be noted that, in addition to the process(es)724that carries (carry) out operations as discussed herein, other embodiments herein include the application722itself (i.e., the unexecuted or nonperforming logic instructions and/or data). The application722may be stored on a computer readable medium (e.g., a repository) such as a disk or in an optical medium. According to other embodiments, the application722can also be stored in a memory type system such as in firmware, read only memory (ROM), or, as in this example, as executable code within the main memory (e.g., within Random Access Memory or RAM). For example, application may also be stored in removable storage media, read only memory, and/or mass storage device.

Those skilled in the art will understand that the computer system can include other processes and/or software and hardware components, such as an operating system that controls allocation and use of hardware resources.

As discussed herein, embodiments of the present invention include various steps or operations. A variety of these steps may be performed by hardware components or may be embodied in machine executable instructions, which may be used to cause a general purpose or special purpose processor programmed with the instructions to perform the operations. Alternatively, the steps may be performed by a combination of hardware, software, and/or firmware. The term “module” refers to a self contained functional component, which can include hardware, software, firmware or any combination thereof.

One of ordinary skill in the art will readily appreciate and understand, upon reading this description, that embodiments of an apparatus may include a computer/computing device operable to perform some (but not necessarily all) of the described process.

Embodiments of a computer readable medium storing a program or data structure include a computer readable medium storing a program that, when executed, can cause a processor to perform some (but not necessarily all) of the described process.

Where a process is described herein, those of ordinary skill in the art will appreciate that the process may operate without any user intervention. In another embodiment, the process may include some human intervention (e.g., a step is performed by or with the assistance of a human).

There may be many other useful applications for the one or more components of the system in the one or more non-limiting embodiments presented above, and multiple advantages and benefits.

The corresponding structures, materials, acts, and equivalents of all means or step plus function elements in the claims below are intended to include any structure, material, or act for performing the function in combination with other claimed elements as specifically claimed. The description of the present invention has been presented for purposes of illustration and description but is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the invention.

The embodiments were chosen and described in order to best explain the principles of the invention and the practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated. The present invention according to one or more embodiments described in the present description may be practiced with modification and alteration within the spirit and scope of the appended claims. Thus, the description is to be regarded as illustrative instead of restrictive of the present invention.

In the Summary above and in this Detailed Description, and the claims below, and in the accompanying drawings, reference is made to particular features (including method steps) of the invention. It is to be understood that the disclosure of the invention in this specification includes all possible combinations of such particular features. For example, where a particular feature is disclosed in the context of a particular aspect or embodiment of the invention, or a particular claim, that feature can also be used, to the extent possible, in combination with and/or in the context of other particular aspects and embodiments of the invention, and in the invention generally.

The term “comprises” and grammatical equivalents thereof are used herein to mean that other components, ingredients, steps, among others, are optionally present. For example, an article “comprising” (or “which comprises”) components A, B, and C can consist of (i.e., contain only) components A, B, and C, or can contain not only components A, B, and C but also contain one or more other components.

Where reference is made herein to a method comprising two or more defined steps, the defined steps can be carried out in any order or simultaneously (except where the context excludes that possibility), and the method can include one or more other steps which are carried out before any of the defined steps, between two of the defined steps, or after all the defined steps (except where the context excludes that possibility).

The term “at least” followed by a number is used herein to denote the start of a range beginning with that number (which may be a range having an upper limit or no upper limit, depending on the variable being defined). For example, “at least 1” means 1 or more than 1. The term “at most” followed by a number is used herein to denote the end of a range ending with that number (which may be a range having 1 or 0 as its lower limit, or a range having no lower limit, depending upon the variable being defined). For example, “at most 4” means 4 or less than 4, and “at most 40%” means 40% or less than 40%. When, in this specification, a range is given as “(a first number) to (a second number)” or “(a first number)-(a second number),” this means a range whose lower limit is the first number and whose upper limit is the second number. For example, 25 to 100 mm means a range whose lower limit is 25 mm and upper limit is 100 mm.

Certain terminology and derivations thereof may be used in the following description for convenience in reference only and will not be limiting. For example, words such as “upward,” “downward,” “left,” and “right” would refer to directions in the drawings to which reference is made unless otherwise stated. Similarly, words such as “inward” and “outward” would refer to directions toward and away from, respectively, the geometric center of a device or area and designated parts thereof. References in the singular tense include the plural, and vice versa, unless otherwise noted. The term “coupled to” as used herein may refer to a direct or indirect connection. The term “set” as used herein may refer to one or more of an item.