Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
AUTHENTICATING ONLINE TRANSACTIONS USING SEPARATE COMPUTING DEVICE
Document Type and Number:
WIPO Patent Application WO/2018/085621
Kind Code:
A1
Abstract:
A method for authenticating an online transaction on a first computing device using a second computing device including detecting a request to process sensitive payment information input on the first computing device to complete a transaction, determining that a condition is present associated with the transaction, disabling a payment processing function of the website to prevent a payment from being processed and completed, generating a unique identifier to be displayed on the first computing device, wherein the user scans the unique identifier with a second computing device to initiate an authentication function, authenticating the user operating the first computing device, and enabling, by the processor, the payment processing function of the website to allow the payment to process.

Inventors:
MATTHEWS MARK (US)
ECKERT DANIEL (US)
NELMS DAVID MARTIN (US)
MATTINGLY TODD (US)
Application Number:
PCT/US2017/059859
Publication Date:
May 11, 2018
Filing Date:
November 03, 2017
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
WAL MART STORES INC (US)
International Classes:
H04L29/06; G06Q20/12; G06Q40/00; G06V30/224
Foreign References:
US20150341344A12015-11-26
US20130030934A12013-01-31
US20160063235A12016-03-03
US20150052062A12015-02-19
US8898762B22014-11-25
US20160140557A12016-05-19
Attorney, Agent or Firm:
MURPHY, Jason A. (US)
Download PDF:
Claims:
CLAIMS

A method for authenticating an online transaction on a first computing device using a second computing device comprising:

detecting, by a processor of a computing system, a request to process sensitive

payment information input on the first computing device to complete a transaction, wherein the user is interacting with a website accessed by the first computing device to prompt the request;

determining, by the processor, that a condition is present associated with the transaction;

disabling, by the processor, a payment processing function of the website to prevent a payment from being processed and completed;

generating, by the processor, a unique identifier to be displayed on the first computing device, wherein the user scans the unique identifier with a second computing device to initiate an authentication function;

authenticating, by the processor, the user operating the first computing device by i) acquiring a geographical location of the second computing device and determining that the second computing device is located within a

predetermined proximity of the first computing device, and ii) obtaining a biometric data of the user from the second computing device; and

enabling, by the processor, the payment processing function of the website to allow the payment to process.

The method of claim 1, wherein the unique identifier is at least one of a QR code, a bar code, and a photograph, an encrypted token, that is displayed on the first computing device and contains information associated with an intended transaction.

The method of claim 1, wherein the condition is selected from the group consisting of: an escalated condition, a suspicious condition, a security risk condition, a price cap condition, a timing condition, and an age restriction condition.

The method of claim 1, wherein the biometric data from the user is automatically retrieved by the second computing device using a facial identification sensor on the mobile device.

The method of claim 1, wherein the second computing device is a mobile device of the user. A computer system, comprising:

a processor;

a memory device coupled to the processor; and

a computer readable storage device coupled to the processor, wherein the storage device contains program code executable by the processor via the memory device to implement a for authenticating an online transaction on a first computing device using a second computing device, the method comprising: detecting, by a processor of a computing system, a request to process sensitive payment information input on the first computing device to complete a transaction, wherein the user is interacting with a website accessed by the first computing device to prompt the request;

determining, by the processor, that a condition is present associated with the transaction;

disabling, by the processor, a payment processing function of the website to prevent a payment from being processed and completed;

generating, by the processor, a unique identifier to be displayed on the first computing device, wherein the user scans the unique identifier with a second computing device to initiate an authentication function;

authenticating, by the processor, the user operating the first computing device by i) acquiring a geographical location of the second computing device and determining that the second computing device is located within a predetermined proximity of the first computing device, and ii) obtaining a biometric data of the user from the second computing device; and

enabling, by the processor, the payment processing function of the website to allow the payment to process.

7. The computer system of claim 6, wherein the unique identifier is at least one of a QR code, a bar code, and a photograph, an encrypted token, that is displayed on the first computing device and contains information associated with an intended transaction.

8. The computer system of claim 6, wherein the payment process includes:

receiving, by the processor, a payment processing information of the validated user;

instructing, by the processor, a payment processing application to process a payment using the payment processing information; and

directing, by the processor, a shipment processing application to ship a product to a

preferred location after the processing of the payment.

9. The computer system of claim 6, wherein the condition is selected from the group consisting of: an escalated condition, a suspicious condition, a security risk condition, a price cap condition, a timing condition, and an age restriction condition.

10. The computer system of claim 6, wherein the biometric data from the user is automatically

retrieved by the second computing device using a facial identification sensor on the mobile device.

1 1. The method of claim 1, wherein the second computing device is a mobile device of the user.

12. A computer program product, comprising a computer readable hardware storage device storing a computer readable program code, the computer readable program code comprising an algorithm that when executed by a computer processor of a computing system implements a method for for authenticating an online transaction on a first computing device using a second computing device, comprising:

detecting, by a processor of a computing system, a request to process sensitive payment information input on the first computing device to complete a transaction, wherein the user is interacting with a website accessed by the first computing device to prompt the request;

determining, by the processor, that a condition is present associated with the transaction; disabling, by the processor, a payment processing function of the website to prevent a

payment from being processed and completed;

generating, by the processor, a unique identifier to be displayed on the first computing device, wherein the user scans the unique identifier with a second computing device to initiate an authentication function;

authenticating, by the processor, the user operating the first computing device by i)

acquiring a geographical location of the second computing device and determining that the second computing device is located within a predetermined proximity of the first computing device, and ii) obtaining a biometric data of the user from the second computing device; and

enabling, by the processor, the payment processing function of the website to allow the payment to process.

13. The computer program product of claim 12, wherein the unique identifier is at least one of a QR code, a bar code, and a photograph, an encrypted token, that is displayed on the first computing device and contains information associated with an intended transaction.

14. The computer program product of claim 12, wherein the payment process includes:

receiving, by the processor, a payment processing information of the validated user;

instructing, by the processor, a payment processing application to process a payment using the payment processing information; and

directing, by the processor, a shipment processing application to ship a product to a

preferred location after the processing of the payment.

15. The computer program product of claim 12, wherein the condition is selected from the group consisting of: an escalated condition, a suspicious condition, a security risk condition, a price cap condition, a timing condition, and an age restriction condition.

16. The computer program product of claim 12, wherein the biometric data from the user is

automatically retrieved by the second computing device using a facial identification sensor on the mobile device.

17. The computer program product of claim 12, wherein the second computing device is a mobile device of the user.

Description:
AUTHENTICATING ONLINE TRANSACTIONS USING SEPARATE COMPUTING DEVICE

RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional Patent No. 62/417,766, filed November 4, 2016, entitled "Authenticating Online Transaction Using Separate Computing Device," the contents of which are incorporated by reference herein in their entirety.

TECHNICAL FIELD

The following relates to systems and methods for authenticating online transactions, and more specifically to embodiments of a method for authenticating online transactions using a separate computing device.

BACKGROUND

A significant percentage of consumers shop online by visiting retailers' website. Often times, consumers use desktop or tablet computers to access the retailer's website. To purchase a product from a retailer's website, at least some personal information must be provided to complete the transaction. Many times the personal information provided to complete the transaction is not input by the user, but rather as a result of fraud attempt or hacking event.

Thus, a need exists for a system for authenticating an online transaction initiated on a computing device using a separate computing device.

SUMMARY

An embodiment of the present invention relates to a method, and associated computer system and computer program product, for authenticating an online transaction, including detecting a request to process sensitive payment information input on the first computing device to complete a transaction, determining that a condition is present associated with the transaction, disabling a payment processing function of the website to prevent a payment from being processed and completed, generating a unique identifier to be displayed on the first computing device, wherein the user scans the unique identifier with a second computing device to initiate an authentication function, authenticating the user operating the first computing device, and enabling, by the processor, the payment processing function of the website to allow the payment to process.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 depicts a block diagram of an authentication processing system, in accordance with embodiments of the present invention.

FIG. 2 depicts a view of a computer used for online shopping, in accordance with embodiments of the present invention.

FIG. 3 depicts a view of the computer of FIG. 2, wherein a unique identifier is displayed on the screen of the computer, in accordance with embodiments of the present invention.

FIG. 4 depicts a user scanning the unique identifier displayed by the computer of FIG. 3, in accordance with embodiments of the present invention. FIG. 5 depicts a user physically present within a predetermined proximity of the computer of FIG. 4, wherein a biometric data of the user is obtained by a separate device, in accordance with embodiments of the present invention.

FIG. 6 depicts a flow chart of a method for authenticating an online transaction on a first computing device using a second computing device, in accordance with embodiments of the present invention.

FIG. 7 depicts a detailed flow chart of a method for authenticating an online transaction on a first computing device using a second computing device, in accordance with embodiments of the present invention.

FIG. 8 illustrates a block diagram of a computer system for the authentication processing system of FIG. 1, capable of implementing methods for authenticating an online transaction on a first computing device using a second computing device of FIGs. 7-8, in accordance with embodiments of the present invention.

DETAILED DESCRIPTION

Referring to the drawings, FIG. 1 depicts a block diagram of an authentication processing system 100, in accordance with embodiments of the present invention. Embodiments of the authentication processing system 100 may be a cybersecurity system, an online transaction security system, a user validation system, a computer security system for verifying purchases and/or online transactions, and the like. Embodiments of the authentication processing system 100 may run on one or more servers, servers systems, or other hardware devices, computing devices, and the like. The authentication processing system 100 may be connected to a computer 111a over network 107. Embodiments of a computer 111a may refer to a computing device, a desktop computer, a personal computer, a tablet, a terminal, a laptop computer, a smartphone, a point of sale (POS) terminal, and the like. Embodiments of a computer 111a may include personal computers owned by the user, used in a private setting. Further embodiments of a computer 111a may be a computer owned by another user, wherein the user is using or borrowing the other user's computer to online shop, connected to a trusted network.

Embodiments of the authentication processing system 100 may also be connected to a mobile device 11 lb over network 107. Embodiments of mobile device 11 lb may be a computing device, a cell phone, a smartphone, a tablet computer, a smartwatch, or any mobile computing device that may have a camera application and GPS functionality. In an exemplary embodiment, the mobile device 11 lb may be a user device associated with the user of the computer 11 la. The authentication processing system 100 may receive one or more communications from a mobile device 11 lb of a user when a user scans a unique identifier that may be present on a screen of the computer 11 la, as well as receive current biometric data from the mobile device 11 lb.

Embodiments of the authentication processing system 100 may include a computing system 120 coupled to a network 107. Computing system 120 may be a computing device, one or more computing devices, a hardware device, a storage device, a server, one or more servers, a server system, and the like. A network 107 may refer to a group of two or more computer systems linked together. Network 107 may be any type of computer network known by individuals skilled in the art. Examples of computer networks 107 may include a LAN, WAN, campus area networks (CAN), home area networks (HAN), metropolitan area networks (MAN), an enterprise network, cloud computing network (either physical or virtual) e.g. the Internet, a cellular communication network such as GSM or CDMA network or a mobile communications data network. The architecture of the computer network 107 may be a peer-to-peer network in some embodiments, wherein in other embodiments, the network 107 may be organized as a client/server architecture. Embodiments of network 107 may be comprised of more than one network.

In some embodiments, the network 107 may further comprise, in addition to the computer system

120, a connection to one or more network accessible knowledge bases containing information of the user, network repositories or other systems connected to the network 107 that may be considered nodes of the network 107. In some embodiments, where the computing system 120 or network repositories allocate resources to be used by the other nodes of the network 107, the computer system 120 and a network repository may be referred to as servers.

The network repository may be a data collection area on the network 107 which may back up and save all the data transmitted back and forth between the nodes of the network 107. For example, the network repository 1 14 may be a data center saving and cataloging user online transactions with a retailer, to generate both historical and predictive reports regarding a particular user, or identifying information of the user for authenticating future online transactions. In some embodiments, a data collection center housing the network repository may include an analytic module capable of analyzing each piece of data being stored by the network repository. Further, the computer system 120 may be integrated with or as a part of the data collection center housing the network repository. In some alternative embodiments, the network repository may be a local repository (not shown) that is connected to the computer system 120.

Referring still to FIG. 1, embodiments of the computer system 120 may be equipped with a memory device 142 which may store the various user information, transactions, product information, mobile payment account information, and the like, and a processor 141 for implementing the tasks associated with the authentication processing system 100.

Furthermore, embodiments of computer system 120 may include a detection module 131, a condition module 132, a security module 133, a validation module 134, a payment processing module 135, and a shipment processing module 136. A "module" may refer to a hardware based module, software based module or a module may be a combination of hardware and software. Embodiments of hardware based modules may include self-contained components such as chipsets, specialized circuitry and one or more memory devices, while a software -based module may be part of a program code or linked to the program code containing specific programmed instructions, which may be loaded in the memory device of the computer system 120. A module (whether hardware, software, or a combination thereof) may be designed to implement or execute one or more particular functions or routines.

With continued reference to FIG. 1, and additional reference to FIG. 2, embodiments of the detection module 131 may include one or more components of hardware and/or software program code for detecting a request to process sensitive payment information input on the first computing device to complete a transaction, wherein the user is interacting with a website accessed by the first computing device to prompt the request. For instance, if a user is interacting with a website accessed by the computer 1 1 1a, the user may browse the website looking for products to purchase online using the computer 1 1 1a. Should the user to decide to purchase one or more products on the website, provide payment for a service, or otherwise submit payment information, the website may prompt the user to enter sensitive information using computer 1 1 la. The sensitive information may be sensitive user information, user information, identification information, personal information, private information, payment information, user credit card information, user bank information, user contact information, and the like. Embodiments of the detection module 131 may detect, recognize, determine, etc. that the website is prompting the user to input the sensitive information associated with a specific transaction for completing payment. In an exemplary embodiment, the detection module 131 may detect that the computer 1 1 la is accessing a page or a function of the website that enables data input via computer 1 1 1a and/or the user has selected a button to process or otherwise transmit sensitive information. Other techniques may be used to detect the request for sensitive data input by the website via computer 1 1 la. For instance, the detection module 131 may detect that the web browser of the computer 1 1 1a has auto-populated credit card information, or that the user is on a known website for ecommerce, and the user is beginning to login to the account for effectuating online payment.

Furthermore, embodiments of the computing system 120 may include a condition module 132. Embodiments of the condition module 132 may include one or more components of hardware and/or software program code for determining that a condition is present relating to the transaction. For instance, the condition module 132 may analyze the proposed or intended transaction that prompted the entering or transmission of sensitive information (e.g. user clicks "checkout" button) to determine whether a certain condition is present in the transaction, in response to an initiation of payment processing or sensitive data input. The condition module 132 may analyze the details of the proposed transaction, a context of the transaction, an amount of money involved in the transaction, a time context of the transaction, a purchase history of the user, a purchase history of the computing device 1 1 la, a nature of the good or service being purchased, the IP address of the computing device 1 1 1a, the geographic location of the computing device 1 1 1a, and/or any detail or factor associated with the transaction that may be helpful in thwarting a hacking event. A condition may be present in the transaction if a range is exceeded, a tolerance is exceeded, a proximity is exceeded, a cap is exceeded, an inconsistency between one or more details of the transaction is determined, a minimum or maximum is not met or met, a detail is irregular, suspicious activity has occurred with the user's account, and the like, as it pertains to an aspect of the transaction. Embodiments of the condition may be a condition, an escalated condition, a suspicious condition, a security risk condition, a price cap condition, a timing condition, an age restriction condition, an irregular condition, a network condition, an excessive condition, an out-of-range condition, an intolerant condition, a capped condition, and the like.

Moreover, embodiments of the condition module 132 may analyze the intended transaction details to determine if a condition is present or has occurred, wherein examples of a specific condition include, but are not limited to: an intended purchase made at an irregular time of the day specific to the user (e.g. 3 :00 AM EST on Tuesday morning), a discrepancy between a wearable technology sensor and the time of the intended transaction (e.g. smartwatch indicates that the user is sleeping during the attempted payment process), a total amount of the intended purchases exceeds a price cap (e.g. require authorization/authentication if total price is over $500), a product has never been purchased before by the user, recent repeated failed attempts, the user is using a new device, a user is not logged into the computer 1 1 la, the computer 1 1 la is connected to an untrusted network, such as a public network, the intended purchase involves an age -restricted item, the intended purchase relates to goods/services purchased over a specific (e.g. large) quantity, and the intended purchase is for a good/service recently purchased within a certain window of time measured from the last purchase.

Accordingly, embodiments of the condition module 132 may analyze the transaction just prior to the transaction being processed using payment information, to determine if a condition is present or has occurred in the proposed transaction. In an exemplary, the condition module 132 may suspend or temporary disable the payment processing function, without alerting the user to the suspension. For instance, the user may click on a "submit payment" button, and the condition module 132 may visually simulate the processing of the payment, or may simply halt the processing to allow for the analyzing of the transaction, the context of the transaction, etc.

Referring still to FIG. 1, and now with additional reference to FIG. 3, embodiments of the security module 133 may include one or more components of hardware and/or software program code for disabling, by the processor, a payment processing function of the website to prevent a payment from being processed and completed, and generating a unique identifier to be displayed on the computer 1 1 la. For instance, embodiments of the security module 133 may disable, lock, alter, prevent, freeze, remove, etc., a website from accepting and/or processing a payment, in response to determining that a condition is present in the transaction that may indicate a suspicious activity or a hacking event, or exceeds a predetermined range/tolerance determined by the user or user parent, guardian, supervisor, boss, etc. In other words, the security module 133 may disable a functionality of the computer 1 1 1a and/or website accessed by the computer 1 1 la to prevent a payment from being processed or a transaction from proceeding by the computer 1 1 1a or, which can be a result of identity theft, bank fraud, etc. or a result of unauthorized purchasing by a user. In an exemplary embodiment, a user operating the computer 1 1 1a cannot complete a transaction, even if the user wanted to, because the security module 133 of the computing system 120 has disabled one or more functions of the computer 1 1 1a and/or website accessed by the computer 1 1 la. The security module 133 may send a notification to be displayed that that the online transaction has been interrupted for security reasons, and that the user needs to follows steps displayed on the screen to continue the online transaction.

Embodiments of the security module 133 may generate a unique identifier 165 to be displayed to the user on the screen of the computer 11 la so that the user can continue with the online transaction using a second computing device, such as a mobile device 1 1 lb. Embodiments of the unique identifier may be at least one of a QR code, a bar code, a UPC code, a SKU number, an encrypted token, a photograph of a product, and the like, which may be encoded with transaction information, or with a URL directing the user to the same webpage prior to disabling. Embodiments of the unique identifier may be displayed on the screen of the computer, as shown in FIG. 3.

A user may scan the unique identifier 165 displayed on the computer 1 11a with a mobile device 1 1 la to initiate an authentication process between the mobile device 1 1 lb and the computing system 120, as shown in FIG. 4. For instance, the security module 133 may receive a communication from a mobile device 1 1 la that has scanned a unique identifier 165 displayed on a screen 164 of a computer 1 1 1a connected to the Internet over network 107. Embodiments of the mobile device 1 1 lb may be a mobile device of a user that is operating or otherwise utilizing the computer 1 1 la to online shop on a retailer's website. The mobile device 1 1 1a may be a mobile computing device, a smartphone, a tablet, a cellular phone, a camera, or other internet connected mobile computing device.

Embodiments of the mobile device 1 1 1a may be equipped with or communicatively coupled to a camera to photograph, scan, analyze, or otherwise capture, and process the unique identifier 165 associated with a product, transaction, payment transaction, login function, contact form request, etc. from the website accessed by the computer 1 1 1a. For instance, store product 160 may be displayed on a screen 164 of the computer 1 1 la that is accessing the website of a retailer, and when the user attempts to purchase the product (e.g. clicking a "checkout" button), the security module 133 may generate a unique identifier 165, such as a QR code, that is encoded with information for the a potential transaction associated with the product 160 for initiating an authentication process using the mobile device 1 1 lb, after the disabling of the computer and/or website functionality that would allow the transaction to be processed. The information encoded in the unique identifier 165 may include details of the product 160 and/or transaction, such as data and/or information relating to a product, such as product information, price, options, similar models, specifications, various colors, sizes, manufacturer information, etc., and custom details/selections previously customized by the user prior to initiating a payment functionality, such as quantity, size, color ("user customization data").

In situations where a user desires to purchase a product 160 when using the computer 1 1 la, a user may scan or otherwise process the unique identifier 165 associated with the desired product 160 displayed on the screen 164 with the mobile device 1 1 lb. Embodiments of the product 160 may include products, items, merchandise, packages, etc. that are available for purchase over the Internet from a retailer's website. Embodiments of the security module 133 may receive the communication or transmission from the mobile device 1 1 1a, which can send the data/information relating to the product 160 when the unique identifier 165 is scanned by the mobile device 1 1 lb. In an exemplary embodiment, the unique identifier 165 is spawned or otherwise presented on the retailer's website after a payment processing functionality is disabled, preventing the transaction from being completed using the computer 1 1 1a. In other words, the unique identifier 165 may be generated and displayed without needing a specific request by the user to spawn or otherwise display the unique identifier 165. In some embodiments, the security module 133, or other module of the computing system 120, may spawn, distribute, display, etc. the unique identifier 165, or may instruct another server to spawn, distribute, display, etc., the unique identifier 165. Accordingly, if a user desires to purchase a product 160 from a retailer's website while shopping on a public computer, such as computer 1 1 la, the user can be forced to use the user's mobile device 1 1 lb to scan a unique identifier 165 associated with the product 160 to initiate an authentication process with a second computing device, and ultimately a purchase and shipment of the product, without having to provide personal information or logging into an account on the computer 1 1 1a.

In an alternative embodiment, the security module 133 may receive a communication from a mobile device 1 1 lb that has scanned or captured an image of the product 160 from the display 164 of the computer 1 1 la. For instance, the security module 133 may encode an image on the website with the same encoded information of the unique identifier 165, so that the user may photograph the image of the product 160 instead of a separate step of spawning a QR code. The encoded image

information/data may be transmitted to the security module 133, which may query a products information database 1 13 to determine which product the user desires to purchase, and initiate the automatic transaction relating to the specific product contained in the image.

Prior to automatically processing the transaction after the user scans a unique identifier 165, the user may be validated, authenticated, or otherwise verified to further reduce cybersecurity risks for online purchases. With continued reference to FIG. 1, and additional reference to FIG. 5, embodiments of the computing system 120 may further include a validation module 134.

Embodiments of the validation module 134 may include one or more components of hardware and/or software program code for authenticating the user operating the first computing device 1 1 la by i) acquiring a geographical location of the second computing device 1 1 1b and determining that the mobile device 1 1 lb is located within a predetermined proximity of the computer 1 1 1a (or other device), and/or ii) authenticating the user using a biometric data of the user obtained by the mobile device 11 lb. For example, the validation module 134 may obtain a GPS information/signal from the mobile device 1 1 lb to determine a geographical and/or physical location of the mobile device 1 1 lb. Alternatively, the validation module 134 may determine a location of the mobile device 134 via one or more beacon devices placed throughout an environment, such as a public environment or other venue. Other techniques may be used to determine an exact location of the mobile device 1 1 lb, as well as the user, by analyzing one or more network connected cameras placed through an

environment, such as a public location or other venue. Moreover, embodiments of the validation module 134 may determine a location of the computer 1 1 la. In an exemplary embodiment, the location of the computer 1 11a may be determined when analyzing the IP address of the computer 1 1 1a.

Embodiments of the validation module 134 may then determine whether the geographic location of the mobile device 1 1 lb is within a predetermined proximity to the computer 1 1 la, or other designated internet connected device. For example, the validation module 134 may be determining whether the mobile device 1 1 lb is within 3 feet, 5 feet, 10 feet, or other physical length or distance from the computer 1 1 la. Close proximity between the mobile device 1 1 lb and the computer 1 1 1a may indicate that the user is actually physically present, and the potential transaction is not a result of a computer hacking event. Furthermore, the validation module 134 may require that the user perform a task to verify a presence of the user nearby the computer 1 1 la. Similarly, the validation module 134 may determine if the mobile device 1 1 lb is within a proximity of an internet connected device, other than the computer 11 la. For instance, the validation module 134 may determine whether the mobile device 11 lb is close enough to an internet connected appliance, a smart speaker, a digital internet connected assistant device, and the like. Further, a type of internet connected device may be a basis for determining which type of purchase or class of goods may be purchased. As an example, groceries may only be purchased if the user is within a certain proximity of an internet connected refrigerator. The validation process may then authenticate the user using biometric data from a sensor/scanner on the mobile device 1 1 lb, and also verify that the mobile device 11 lb is within a certain proximity of a particular device, which may vary depending on the a type of class of good/service. The validation module 134 may prompt the user to walk to the internet connected device attributed to a certain type of good, after determining whether the purchase involves a particular type of good that requires an additional security validation. Accordingly, embodiments of the validation module 134 may require multiple levels of "keys" to approve or otherwise validate a purchase using computer 11 1a.

In another embodiment, the validation module 134 may instruct the mobile device 1 1 lb to display a location using a maps application or similar application that can indicate a location to a user that is relatively close to the computer, and request the user walk to a specific geographic location nearby the computer. As the user walks to the specific spot, the GPS information of the mobile device 1 1 lb may change and eventually correspond or sufficiently correspond to the specific spot the validation module 134 has selected. The specific spot may be randomly selected, or may be a same spot each time nearby the computer 1 1 1a. In another embodiment, the validation module 134 may also require, potentially in addition to confirming close proximity with the computer, that the user perform a gesture with the mobile device 1 1 lb to further confirm a physical presence of the user. For example, the validation module 134 may request that the user shake the mobile device 1 1 lb, tilt the mobile device 11 lb, rotate the mobile device 1 1 lb, etc., using sensor data (e.g. accelerometer) of the mobile device 11 lb to confirm the activity. Thus, embodiments of the validation module 134 may confirm a physical and active presence of a user nearby the computer 11 1a.

Verifying, validating, or authenticating the user operating the mobile device 1 1 lb may further include obtaining a biometric data, or other identifying data, to confirm an identity of the user in addition to confirming a physical and potentially an active presence of the user Embodiments of the validation module 134 may query one or more databases, such as a customer authentication database 1 12 to authenticate a user of a mobile device 11 lb. Embodiments of the customer authentication database 1 12 may be one or more databases, storage devices, repositories, and the like, that may store or otherwise contain information and/or data regarding personal account information of a user, such as name, account identifiers, passwords, pin numbers, address information, other personal identifying information and the like, that may be associated with a mobile application on the mobile device 1 1 lb of the user. The customer authentication database 1 12 may be accessed over network 107, and may be managed and/or controlled by a third party, or by a retailer associated with the mobile application on the user's mobile device 1 1 lb. Embodiments of the validation module 134 may retrieve, receive, obtain, derive, etc. authenticating information from the customer authentication database 1 12. For instance, the validation module 134 may query the customer authentication database 1 12 to further confirm an identify a user of the mobile device 1 1 1b that transmitted the communication to the security module 133 to process a purchase of the product whose unique identifier 165 was scanned by the mobile device 1 1 lb. Once an identity is established and/or confirmed, the validation module 134 may request that the identity be further confirmed by the mobile device 1 1 lb. In an exemplary embodiment, the validation module 134 may request that the mobile device 1 1 lb transmit identifying information in response to the request by the validation module 134, such as a pin number, a password, a login information, a biometric identifier, such as a fingerprint, voice signature, facial expression data, and the like. In other embodiments, the validation module 134 may confirm identifying information that is sent by the mobile device 1 1 lb when the transaction's unique identifying information is communicated to the computing system 120. For example, if a user logs in to a mobile application on the user's mobile device 1 1 lb that is associated with a particular retailer, and opens the mobile application to use a function of the mobile application that enables the user to use device's camera to scan a unique identifier 165 of a product found using a computer 1 1 1a, then user identifying information may be communicated by the mobile application on the mobile device 1 1 lb to the computing system 120. Embodiments of the validation module 134 may verify or otherwise authenticate the user identifying information by comparing the received identifying information with the user identifying information retrieved or received from the customer authentication database 112. Furthermore, in response to the scanning of the unique identifier 165, embodiments of the validation module 134 may automatically retrieve biometric data of the user, automatically sending an instruction to the mobile device 1 1 lb to initiate a biometric sensor. For example, the user may use the mobile device 1 1 la to scan the unique identifier 165, and soon after scanning or simultaneous to the scanning the mobile device 1 1 lb may be instructed to capture biometric information/data of the user using a facial identification sensor on the mobile device 1 1 lb. Thus, a face of the user, at any particular angle, may be automatically scanned by the facial recognition sensor (e.g. located on a front or back of the mobile device 1 1 lb) in response to launching a camera application to capture the unique identifier 165. In addition, the validation module 134 may automatically instruct the mobile device 11 la to prompt the user to enter biometric data via a fingerprint/thumb sensor, voice recognition functionality, retina scanner, and the like.

In addition, the validation module 134 may further use payment account information to authenticate, verify, confirm, etc. the user of the mobile device 1 1 lb. For example, the validation module 134 may query one or more databases, such as a payment accounts database 1 10 to further confirm or authenticate the user. Embodiments of the payment accounts database 1 10 may be one or more databases, storage devices, repositories, and the like, that may store or otherwise contain information and/or data regarding one or more payment instruments associated with the user and the user's mobile application on the mobile device 1 1 lb. The payment accounts database 110 may also be accessed over network 107, and may be affiliated with, managed, and/or controlled by one or more financial institutions, issuers, authorizers, and the like. Embodiments of the validation module 134 may query the payment accounts database 1 10 to identify a user of the mobile device 1 1 lb that transmitted the communication to the computing system 120 to process a transaction scanned by the mobile device 1 1 lb, based on one or more payment instruments associated with the user. Payment instruments may be a bank account, a credit card account, a debit card, a checking account, an electronic gift card, and the like. Embodiments of the validation module 134 may retrieve or otherwise receive payment instrument information stored on the mobile device 1 1 lb or stored on a remote server servicing the mobile device 1 1 lb, and may compare the information to authenticate the user of the mobile device 11 lb. In other embodiments, the validation module 134 may confirm identifying information that is sent by the mobile device 1 1 lb when the unique identifying information is communicated to the computing system 120. For example, if a user logs in to a mobile application on the user's mobile device 1 1 lb that is associated with a particular retailer, and opens the mobile application to use a function of the mobile application that enables the user to use device's camera to scan a unique identifier 165 of product 160 displayed on a screen 164 of computer 1 1 la, then user payment account information may also be communicated by the mobile application on the mobile device 1 1 lb to the computing system 120 over the secure network 108. Embodiments of the validation module 134 may verify or otherwise authenticate the user identifying information by comparing the received payment account information with the payment account information retrieved or received from the payment accounts database 1 10.

Accordingly, embodiments of the validation module 134 may use a plurality of authentication techniques in combination to validate the user of the mobile device 1 1 1b trying to make an online purchase, and satisfy the authentication procedure/process initiating by the scanning of the unique identifier 165 while the computer and/or website are disabled. A preselected combination of methods of authentication may be retrieved by the validation module 134, by accessing preferences set by the user in an application loaded on the mobile device 1 1 1. Alternatively, the preselected method may be determined by accessing a remote server that stores user preferences. The validation module 134 may analyze the user preferences to determine which method of authentication has been set by the user. Based on the type of preselected method of authentication, the type and/or amount of identifying information required by the authentication module 132 may vary. In some embodiments, the authentication module 132 may determine that the preselected method of authentication is a fingerprint, along with geographic proximity. In this embodiment, the validation module 134 may request that the user input fingerprint into a fingerprint sensor to satisfy the authentication procedure. Further identifying methods may be preselected by the user, such as voice recognition, retina scan, facial recognition, and the like, in combination with a gesture (e.g. shaking a smartphone).

Embodiments of the validation module 134 may receive the biometric information, and may compare the biometric information with a database, such as a customer authentication database 1 12, or other database to confirm that the identifying information is accurate. However, in some embodiments, the validation module 134 may receive only a signal or a communication from the mobile device 1 1 lb that the user has successfully entered identifying information.

Moreover, embodiments of the validation module 134 may include one or more components of hardware and/or software program code for enabling the payment processing function of the website and/or computer 1 1 la to allow the payment to process. The enabling performed by the computing system 120 may be in response to a determining that the authentication process was satisfied. In an exemplary embodiment, the validation module 134 may alert or otherwise notify the user that the payment processing function of the website and/or computer 1 1 1a has been enabled to allow the payment to process. In other embodiments, the transaction process may simply continue as normal on the computer 1 1 1a.

Referring still to FIG. 1, embodiments of the computing system 120 may further include a payment processing module 135. Embodiments of the payment processing module 135 may include one or more components of hardware and/or software program code for receiving payment information and instructing payment for completing the authenticated online transaction. For example, the payment processing module 135 may receive payment processing information from either the computing device 1 1 la or the mobile device 1 1 lb. For example, the payment processing module 135 may query one or more databases, such as a payment accounts database 1 10 to obtain a payment information. Embodiments of the payment accounts database 110 may be one or more databases, storage devices, repositories, and the like, that may store or otherwise contain information and/or data regarding one or more payment instruments associated with the user and the user's mobile application on the mobile device 1 1 lb. The payment accounts database 1 10 may also be accessed over network 107, and may be affiliated with, managed, and/or controlled by one or more financial institutions, issuers, authorizers, and the like.

In an exemplary embodiment, payment information may be received from the mobile device 1 1 lb. For instance, the payment processing module 135 may retrieve or otherwise receive payment instrument information stored on the mobile device 1 1 lb or stored on a remote server servicing the mobile device 1 1 lb, after the authentication signal or communication has been sent by the mobile device 11 lb. In an alternative embodiment, the mobile device 1 1 1b may transmit user payment account information along with the authentication signal. The payment processing module 135 of the computing system 120 may communicate with an application loaded on the user's mobile device 1 1 1b to access a local storage of the mobile device 1 1 1, which may contain data regarding payment accounts or payment instruments. In another embodiment, the payment processing module 135 may communicate with a remote server or remote storage device that may include data regarding a payment account or payment instrument associated with an application loaded on the customer's mobile device 1 1 lb. Moreover, embodiments of the payment processing module 135 may also access customer preferences that may be saved on the mobile device 11 lb or to servers servicing the mobile device's operation of the mobile application to determine a preferred payment method or a preferred payment instrument to be used for purchasing store product. The customer's preferences may also indicate an alternative payment instrument to be used in the event the payment instrument selected as a default expires, or cannot be processed over the network 107 at the time of the purchase.

In another exemplary embodiment, payment information may be received from the computing device 1 1 la. Once authentication has been communicated to the computing system 120, the user may proceed with the checkout process on the computing device 1 1 la. The user may input payment information on the retailer's website payment application to complete the transaction, or the payment information may be auto -populated using programs running on the computing device 1 1 la.

Embodiments of the payment processing module 135, in response to receiving, obtaining, retrieving, or otherwise determining a payment method, account, instrument, etc. of the user to be used for completing the authenticated online transaction, may instruct or direct a payment processing application to process and complete the payment for the scanned product. For instance, the payment processing module 135 may transmit, send, direct, or provide instruction to a payment processing application to utilize the user's payment account information to complete the purchase. Embodiments of a payment application may be a retailer's website checkout platform, a mobile application associated with a retailer, a third party application, such as an application managed by a bank or financial institution, or any application that facilitates a transfer of currency from the user's account to the retailer's account, in response to receiving the instruction from the payment processing module

135. Alternatively, the payment processing module 135 may process the payment to complete the authenticated online transaction. In response to receiving the payment instrument information of the user, the payment processing module 135 may transact with a third party application to complete the purchase.

Embodiments of the computing system 120 may further include a shipment processing module

136. Embodiments of the shipment processing module 136 may include one or more components of hardware and/or software program code for receiving shipment information and directing shipment of the purchased product to a preferred location of the user. For example, the shipment processing module 136 may receive shipment processing information from the mobile device 1 1 lb or the computer 1 1 1a. In an exemplary embodiment, the mobile device 11 1b may transmit shipment information along with an authentication signal, or as a separate transmission. Thus, the shipment processing module 136 may receive a communication from the mobile device 11 1b regarding shipment information of the user.

Alternatively, the shipment processing module 136 of the computing system 120 may communicate with an application loaded on the user's mobile device 1 1 lb or computer 1 1 la to access a local storage of the mobile device 1 1 lb or the computer 1 1 1a, which may contain data regarding shipping destinations, such as a home address of the user, an office address, or frequently shipped to destinations. In another embodiment, the shipment processing module 136 may communicate with a remote server or remote storage device that may include data regarding shipment destinations associated with an application loaded on the customer's mobile device 1 1 lb or computer 1 1 1a.

Moreover, embodiments of the shipment processing module 136 may also access customer preferences that may be saved on the mobile device 1 1 lb or computer 1 1 la or to servers servicing the mobile device's operation of the mobile application to determine a preferred shipping location or method. The customer's preferences may also indicate an alternative shipping location or instruction to be used in the event the shipping destination selected as a default cannot be processed over the network 107 at the time of the purchase.

Furthermore, embodiments of the shipment processing module 136, in response to receiving, obtaining, retrieving, or otherwise determining a preferred shipping location of the user to be used for shipping the purchased product, may instruct or direct a shipment processing application to process and complete the shipping of the scanned product to the preferred location. For instance, the shipment processing module 136 may transmit, send, direct, or provide instruction to a shipment processing application to accomplish the shipping of the purchased product. Embodiments of a shipment application may be a mobile application associated with a delivery services company, organization, or department, or a third party application, such as an application managed by a courier service, a delivery service, a mail delivery service, or any application that facilitates a shipment of a product to a preferred location of a user, in response to receiving the instruction from the shipment processing module 136. Alternatively, the shipment processing module 136 may process the shipment for the scanned product. In response to receiving the shipment information of the user, the shipment processing module 136 may transact with a third party application to complete the shipment.

Various tasks and specific functions of the modules of the computing system 120 may be performed by additional modules, or may be combined into other module(s) to reduce the number of modules. Further, embodiments of the computer or computer system 120 may comprise specialized, non-generic hardware and circuitry (i.e., specialized discrete non-generic analog, digital, and logic based circuitry) for (independently or in combination) particularized for executing only methods of the present invention. The specialized discrete non-generic analog, digital, and logic based circuitry may include proprietary specially designed components (e.g., a specialized integrated circuit, such as for example an Application Specific Integrated Circuit (ASIC), designed for only implementing methods of the present invention). Moreover, embodiments of the authentication processing system 100 may improve cybersecurity technology and identity theft technology. . The solution is necessarily rooted in computers because computing devices are used to alter website and other computer functionalities to reduce a cybersecurity risk and protect a private user data when making online purchases, as well as provide a rule-based platform for authenticating users trying to make an online purchase. This may improve fraud and identity theft technology by verifying the customer who initiates a request to purchase a product from a retailer, and adds another layer of security when completing a purchase while shopping online.

Referring now to FIG. 6, which depicts a flow chart of a method 200 for authentication an online transaction, in accordance with embodiments of the present invention. One embodiment of a method 200 or algorithm that may be implemented for authenticating an online transaction in accordance with the authentication processing system 100 described in FIGs. 1 -6 using one or more computer systems as defined generically in FIG. 8 below, and more specifically by the specific embodiments of FIGs. 1 - 6.

Embodiments of the method 200 for authenticating an online transaction, in accordance with embodiments of the present invention may begin at step 201 wherein a request for a payment to be processed is detected. For example, if a user initiates payment processing functionality while browsing a website using computer 1 1 1a, the computing system 120 may detect the initiation of the payment processing functionality. Step 202 determines that a condition is present in the intended transaction. In response to the determining that a condition exists or will occur if the transaction is processed, step 203 disables the computer functionality for processing payment information. In the disabled state, the user may be prevented from entering using personal, private, and/or financial information on the computer 1 1 la to complete an online purchase. Step 204 generates for display a unique identifier 165, such as a QR code, on the computer 1 1 la for scanning by the user. For instance, the computing system 120 may flash, display, spawn, generate, or otherwise provide a QR code on the website and/or computer 1 1 la, which the user may scan, photograph or otherwise capture for initiating an automatic authentication process. To complete the automatic authentication process, step 205 validates the user using one or more authentication techniques, as described above. Step 206 enables the payment processing function on the computer 1 1 la to allow the transaction to continue on the computer, or automatically finishes the payment and shipping aspect of the transaction directly on the mobile device 1 1 lb.

FIG. 7 depicts a detailed flow chart 300 of a method 200 for authenticating an online transaction, in accordance with embodiments of the present invention. Step 301 recognizes that a website has been requested to process a payment, or otherwise collect personal information of the user. Step 302 analyzes the intended transaction to determine whether a condition is present or will occur if the transaction were allowed to proceed. Step 303 determines whether a condition is present. If a condition is not present or would not occur, then step 304 ends the method, and does not interfere with the online transaction. If a condition is present or would occur, then step 305 alters a computer functionality to prevent the user from processing payment information using the computer 1 1 la. Step 306 displays a unique identifier, such as a QR code, on the computer screen, containing transactional details of the halted transaction. Step 307 validates the user in response to the user scanning the displayed QR code. For validating the user, step 308 determines whether the user is present nearby the computer 1 1 la. If the user is not present nearby the computer, step 309 ends the current transaction because it may concluded that a hacking event may be taking place. If the user is present nearby the computer 1 1 1a (e.g. within a predefined proximity), step 310 determines whether a biometric data obtained from the user's mobile device in response to the scanning matches a previously authenticated biometric signature of the user. If not, the method returns to step 309 and the current transaction is ended and/or cancelled. If yes, step 31 1 enables the functionality.

The following scenario is described for exemplary purposes to show an embodiment of the implementation of method 200, 300:

At home, an adult is browsing a retailer's website using a tablet computer. The adult selects a new home gym machine. As the user attempts to checkout on the retailer's website, the payment processing functionality of the retailer's website is disabled because the home gym machine exceeds $500, which is the maximum a user may spend without needing an authentication from a separate computing device. In response to the disabling, the tablet computer now displays a QR code on the tablet's screen. The adult launches a mobile application associated with the retailer on the adult's smartphone, logs in (or is automatically logged in upon opening the application) and scans the QR code. The adult, sitting 1 foot away from the computer, is prompted to tilt and hold the tilted position of the smartphone for 5 seconds for validation. Upon titling the smartphone (and being within 3 feet of the hotel computer, the adult is validated and payment process function on the tablet computer is enabled and the new home gym machine is automatically purchased and instructed to be shipped to the adult's home. FIG. 8 illustrates a block diagram of a computer system 500 that may be included in the system of FIGs. 1-5 and for implementing the methods of FIGs. 6-7 in accordance with the embodiments of the present invention. The computer system 500 may generally comprise a processor 591, an input device 592 coupled to the processor 591, an output device 593 coupled to the processor 591, and memory devices 594 and 595 each coupled to the processor 591. The input device 592, output device 593 and memory devices 594, 595 may each be coupled to the processor 591 via a bus. Processor 591 may perform computations and control the functions of computer 500, including executing instructions included in the computer code 597 for the tools and programs capable of implementing a method for authenticating an online transaction, in the manner prescribed by the embodiments of FIGs. 6-7 using the authentication processing system of FIGs. 1-5, wherein the instructions of the computer code 597 may be executed by processor 591 via memory device 595. The computer code 597 may include software or program instructions that may implement one or more algorithms for implementing the methods for authenticating an online transaction, as described in detail above. The processor 591 executes the computer code 597. Processor 591 may include a single processing unit, or may be distributed across one or more processing units in one or more locations (e.g., on a client and server).

The memory device 594 may include input data 596. The input data 596 includes any inputs required by the computer code 597. The output device 593 displays output from the computer code 597. Either or both memory devices 594 and 595 may be used as a computer usable storage medium (or program storage device) having a computer readable program embodied therein and/or having other data stored therein, wherein the computer readable program comprises the computer code 597. Generally, a computer program product (or, alternatively, an article of manufacture) of the computer system 500 may comprise said computer usable storage medium (or said program storage device).

Memory devices 594, 595 include any known computer readable storage medium, including those described in detail below. In one embodiment, cache memory elements of memory devices 594, 595 may provide temporary storage of at least some program code (e.g., computer code 597) in order to reduce the number of times code must be retrieved from bulk storage while instructions of the computer code 597 are executed. Moreover, similar to processor 591, memory devices 594, 595 may reside at a single physical location, including one or more types of data storage, or be distributed across a plurality of physical systems in various forms. Further, memory devices 594, 595 can include data distributed across, for example, a local area network (LAN) or a wide area network (WAN). Further, memory devices 594, 595 may include an operating system (not shown) and may include other systems not shown in FIG. 8.

In some embodiments, the computer system 500 may further be coupled to an Input/output (I/O) interface and a computer data storage unit. An I/O interface may include any system for exchanging information to or from an input device 592 or output device 593. The input device 592 may be, inter alia, a keyboard, a mouse, etc. or in some embodiments the touchscreen of a device. The output device 593 may be, inter alia, a printer, a plotter, a display device (such as a computer screen), a magnetic tape, a removable hard disk, a floppy disk, etc. The memory devices 594 and 595 may be, inter alia, a hard disk, a floppy disk, a magnetic tape, an optical storage such as a compact disc (CD) or a digital video disc (DVD), a dynamic random access memory (DRAM), a read-only memory (ROM), etc. The bus may provide a communication link between each of the components in computer 500, and may include any type of transmission link, including electrical, optical, wireless, etc.

An I/O interface may allow computer system 500 to store information (e.g., data or program instructions such as program code 597) on and retrieve the information from computer data storage unit (not shown). Computer data storage unit includes a known computer-readable storage medium, which is described below. In one embodiment, computer data storage unit may be a non-volatile data storage device, such as a magnetic disk drive (i.e., hard disk drive) or an optical disc drive (e.g., a CD- ROM drive which receives a CD-ROM disk). In other embodiments, the data storage unit may include a knowledge base or data repository 125 as shown in FIG. 1.

As will be appreciated by one skilled in the art, in a first embodiment, the present invention may be a method; in a second embodiment, the present invention may be a system; and in a third embodiment, the present invention may be a computer program product. Any of the components of the embodiments of the present invention can be deployed, managed, serviced, etc. by a service provider that offers to deploy or integrate computing infrastructure with respect to authentication processing systems and methods. Thus, an embodiment of the present invention discloses a process for supporting computer infrastructure, where the process includes providing at least one support service for at least one of integrating, hosting, maintaining and deploying computer-readable code (e.g., program code 597) in a computer system (e.g., computer 500) including one or more processor(s) 591, wherein the processor(s) carry out instructions contained in the computer code 597 causing the computer system to authenticate online transactions in accordance with embodiments of the present invention. Another embodiment discloses a process for supporting computer

infrastructure, where the process includes integrating computer-readable program code into a computer system including a processor.

The step of integrating includes storing the program code in a computer-readable storage device of the computer system through use of the processor. The program code, upon being executed by the processor, implements a method for authenticating an online transaction. Thus, the present invention discloses a process for supporting, deploying and/or integrating computer infrastructure, integrating, hosting, maintaining, and deploying computer-readable code into the computer system 500, wherein the code in combination with the computer system 500 is capable of performing a method for authenticating an online transaction.

A computer program product of the present invention comprises one or more computer readable hardware storage devices having computer readable program code stored therein, the program code containing instructions executable by one or more processors of a computer system to implement the methods of the present invention.

A computer system of the present invention comprises one or more processors, one or more memories, and one or more computer readable hardware storage devices, said one or more hardware storage devices containing program code executable by the one or more processors via the one or more memories to implement the methods of the present invention.

The present invention may be a system, a method, and/or a computer program product at any possible technical detail level of integration. The computer program product may include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present invention.

The computer readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device. The computer readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non -exhaustive list of more specific examples of the computer readable storage medium includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing. A computer readable storage medium, as used herein, is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), or electrical signals transmitted through a wire.

Computer readable program instructions described herein can be downloaded to respective computing/processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and/or a wireless network. The network may comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers. A network adapter card or network interface in each computing/processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing/processing device.

Computer readable program instructions for carrying out operations of the present invention may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, configuration data for integrated circuitry, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C++, or the like, and procedural programming languages, such as the "C" programming language or similar programming languages. The computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer readable program instructions.

These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. These computer readable program instructions may also be stored in a computer readable storage medium that can direct a computer, a programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer readable storage medium having instructions stored therein comprises an article of manufacture including instructions which implement aspects of the function/act specified in the flowchart and/or block diagram block or blocks.

The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process, such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions/acts specified in the flowchart and/or block diagram block or blocks.

The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the blocks may occur out of the order noted in the Figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware -based systems that perform the specified functions or acts or carry out combinations of special purpose hardware and computer instructions.

The descriptions of the various embodiments of the present invention have been presented for purposes of illustration, but are not intended to be exhaustive or limited to the embodiments 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 described embodiments. The terminology used herein was chosen to best explain the principles of the embodiments, the practical application or technical improvement over technologies found in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments disclosed herein.