The present disclosure relates to transaction risk processing systems.
Financial transactions relating to purchasing goods and services are predominately paid for using credit accounts and debit accounts that an account owner accesses through associated credit cards and debit cards. Financial transaction processing systems provide verification processes that allow merchants to verify that account information is valid and the account owner has sufficient credit or debit funds to cover the purchase.
When a purchaser is located at the merchant's facility, the merchant is responsible for authenticating that the purchaser is the account owner by, for example, comparing the purchaser's signature to an existing signature on the card, examining a picture ID of the purchaser, or providing a password.
For purchases made through a merchant's website and other electronic commerce (“eCommerce”) transactions (known as a card-not-present transactions (CNP)), financial transaction processing systems can use eCommerce authentication processes that challenge the purchaser to provide a security code that is used to authenticate that the purchaser is the account owner or is otherwise authorized by the account owner. The security code may be a password, personal identification number (PIN), or other information known to the account owner such as a one time password received through e-mail, etc. Purchasers can find eCommerce authentication processes undesirable due to the need to remember security codes and the requirement to successfully complete additional process steps for purchases. Merchants can find eCommerce authentication processes undesirable because of the fees charged for use of such processes and lost sales due to purchasers abandoning transactions during the eCommerce authentication processes.
Some embodiments disclosed herein are directed to a method of performing operations on a processor of a financial transaction processing system. The method includes receiving from a merchant node an eCommerce authentication request for a pending eCommerce transaction associated with a user terminal. The eCommerce authentication request contains transaction information that comprises a user terminal identifier and a reported list of wireless device identifiers that are observed by the user terminal. A risk score is generated for the pending eCommerce transaction based on comparison of the reported list of wireless device identifiers to a registered list of wireless device identifiers which has been associated with the user terminal identifier. Authentication of the eCommerce authentication request is controlled based on the risk score.
Some other embodiments disclosed herein are directed to a computer node of a financial transaction processing system that includes a processor and a memory. The memory is coupled to the processor and includes computer readable program code that when executed by the processor causes the processor to perform operations. The operations include receiving from a merchant node an eCommerce authentication request for a pending eCommerce transaction associated with a user terminal. The eCommerce authentication request contains transaction information that comprises a user terminal identifier and a reported list of wireless device identifiers that are observed by the user terminal. The operations further include generating a risk score for the pending eCommerce transaction based on comparison of the reported list of wireless device identifiers to a registered list of wireless device identifiers which has been associated with the user terminal identifier, and controlling authentication of the eCommerce authentication request based on the risk score.
Some other embodiments disclosed herein are directed to a user terminal that includes a processor, a memory coupled to the processor, and a radio transceiver configured to communicate with wireless devices. The memory includes computer readable program code that when executed by the processor causes the processor to perform operations. The operations include generating a list of wireless device identifiers for wireless devices that are presently observable by the radio transceiver, and generating an eCommerce authentication request for a pending eCommerce transaction. The eCommerce authentication request includes the list of wireless device identifiers, an account number for the eCommerce transaction, and an amount of the pending eCommerce transaction. The operations further include communicating the eCommerce authentication request to a merchant node.
Other methods, computer nodes of financial transaction processing systems, and user terminals according to embodiments will be or become apparent to one with skill in the art upon review of the following drawings and detailed description. It is intended that all such additional methods, computer nodes of financial transaction processing systems, and user terminals be included within this description and protected by the accompanying claims.
Aspects of the present disclosure are illustrated by way of example and are not limited by the accompanying drawings. In the drawings:
Various embodiments will be described more fully hereinafter with reference to the accompanying drawings. Other embodiments may take many different forms and should not be construed as limited to the embodiments set forth herein. Like numbers refer to like elements throughout.
The rate of fraud occurring with eCommerce transactions continues to increase with the increasing number of various types of user terminals (e.g., smart phones, portable computing devices, etc.) that are used to conduct eCommerce transactions. Reliance on a user terminal identifier associated with an eCommerce transaction is not sufficient to prevent fraud, because for a fraudulent eCommerce transaction a fraudster can configure a user terminal to provide a user terminal identifier that is known to be associated with an account owner but different from the identifier for the user terminal operated by the fraudster. Various embodiments of the present disclosure provides an extra level of security to identify such fraudulent eCommerce transactions.
Some embodiments of the present disclosure are directed to a financial transaction processing system that determines the risk of an eCommerce transaction from a user terminal based on comparison of the wireless devices that are presently observable by the user terminal to a list of wireless devices that have been earlier registered as being associated with the user terminal. For example, when a user terminal generates an eCommerce transaction that indicates the wireless terminal is presently paired to a smart watch and the system determines that the smart watch has been earlier registered with an association to the user terminal, the system can generate a risk score that indicates the eCommerce transaction has a low risk of fraud. An eCommerce transaction can be any type of financial transaction that involves transmitting funds or data over an electronic data network, such as the Internet.
A credit card owner may proactively register with the financial transaction processing system the various wireless devices that are owned by the credit card owner and which can be wirelessly connected to a user terminal. Alternatively or additionally, the financial transaction processing system can generate a list of wireless devices that are associated with a user terminal by learning over time what wireless devices are observable by the user terminal at the time of various eCommerce transactions. The system can generate a list of wireless devices that are determined to be observable by the user terminal during the eCommerce transactions. The system may use feedback regarding completion of successful authentication processes which authenticated the user of the user terminal for one or more eCommerce transactions before adding one or more observed wireless devices to a registered list associated with the user terminal.
More than one list of wireless devices may be associated with the same user terminal. For example, different lists of wireless devices associated with a user terminal may be generated based on observing patterns of wireless devices that are identified as being observable during eCommerce transactions from the user terminal as a function of the time of day, the day of week, geolocation, movement (e.g., eCommerce transaction arising while riding in a vehicle), and/or other patterns. For example, different lists of wireless devices can generated for association with a user terminal based on different geolocations or other criteria, such as at the card owner's home, work, vehicle, etc.
Thus, for example, when the credit card owner operates a user terminal to generate an eCommerce transaction while within the owner's car, the eCommerce transaction can include information that indicates the user terminal is presently paired to the car's Bluetooth transceiver having an identifier that is determined by the financial transaction processing system to match a wireless device identifier that has earlier been associated with the user terminal. The system can therefore determine that the risk of the eCommerce transaction being fraudulent is low. The eCommerce transaction may also include information that indicates the user terminal is also paired to a smart watch Bluetooth transceiver having an identifier that is determined by the financial transaction processing system to match another wireless device identifier that has earlier been associated with the user terminal. The system can therefore match two reported wireless device identifiers to entries in a registered list of wireless device associated with the mobile terminal identifier, and determine that the risk of the eCommerce transaction being fraudulent is further reduced relative to identifying a single match.
Referring to
Pursuant to embodiments disclosed herein, the user terminal 110 also communicates as part of the eCommerce transaction to the merchant node 120 a list of wireless device identifiers of wireless devices 112a . . . 112c that are observed by the user terminal 110 through one or more wireless transceiver interfaces of the user terminal 110. The list may include wireless device identifiers of wireless devices that are observable through any type of wireless communication technology by the user terminal 110. In one example embodiment, the list of wireless device identifiers can include a list of Bluetooth devices that indicated to have established a traffic data connection through completing pairing to the user terminal 110, but may alternatively or additionally list Bluetooth devices that are not paired to the user terminal 110 but are presently observed to be within communication range of a Bluetooth transceiver of the user terminal 110 through operations for discovering Bluetooth devices. In another example embodiment, the list of wireless device identifiers can include a list of wireless local area network, WLAN, (e.g., WIFI) devices that are indicated to have established a traffic data connection with the user terminal 110 through joining a shared network that includes the user terminal 110 (e.g., WIFI shared network or WIFI Direct), but may alternatively or additionally list WLAN devices that are not connected to the user terminal 110 but which have been discovered to be within communication range of a WLAN transceiver of the user terminal 110 through operations for discovering WLAN routers and other devices.
The user terminal 110 can therefore be configured to respond to an eCommerce transaction being initiated, e.g., by start-up of an eCommerce application hosted on the user terminal 110, but scanning to identify wireless devices that are observable by the user terminal 110. The user terminal 110 generate a list that identifies the wireless device identifiers, and which may furthermore identify for individual ones of the wireless device identifiers whether the wireless device identifier is for a wireless device has established a traffic data connection with the user terminal through successfully completing Bluetooth pairing, joining a WLAN network, etc. The list may identify for individual ones of the wireless device identifiers the type of radio access technology that is used for communications (e.g., NFC, Bluetooth, WIFI, etc.).
An application processed by the user terminal 110 can operate to generate the information which is communicated to the merchant node 120 for use in an eCommerce transaction. The user terminal 110 may be any electronic device that can communicate with a merchant node 120 including, but not limited to, a tablet computer, desktop computer, laptop computer, mobile phone, a point-of-sale merchant terminal, etc. The wireless devices may include, without limitation, a smart watch worn by the user who is operating the user terminal, car, a kitchen appliance (e.g., microwave oven, refrigerator, etc.), a desktop computer, television, a cable television tuner, a satellite television tuner, a home controller (e.g. door lock, temperature thermostat, light controller, etc.), a fire detector, a network security system, a washer or dryer, etc, that have a radio communication interface that emits signals observable (e.g., receivable, discoverable, etc.) by the user terminal 110.
Because of the prevalence of fraud occurring in eCommerce and other card-not-present financial transactions, where merchants cannot directly authenticate purchasers using picture IDs, electronic authentication processes have been introduced to authenticate purchasers. Electronic authentication processes can be performed by an authentication node 130 to attempt to confirm that the purchaser is an account owner or is otherwise authorized by the account owner.
If the merchant node 120 is registered for use of electronic authentication processes, the merchant node 120 generates an eCommerce authentication request containing content items (also referred to as “items of content”) that includes cardholder information, which can include one or more items of the cardholder information received from the user terminal 100, and further includes a user terminal identifier for the user terminal 110 and the list of wireless device identifiers of wireless devices 112a . . . 112c that are observed by the user terminal 110.
In accordance with some embodiments disclosed herein, the cardholder information contained as items of content of the eCommerce authentication request can include any one or more of:
The user terminal identifier for the user terminal 110 uniquely identifies the user terminal, such as by a telephone number of the user terminal, a International Mobile Subscriber Identity of the user terminal, and/or an identifier assigned to the mobile terminal 110 by an eCommerce application executed by the user terminal 110 or stored on the user terminal 110 during account setup/maintenance with the issuer node 140 and/or the merchant node 120. The user terminal identifier may be communicated from the user terminal 110 to the merchant node 120 or may determined by the merchant node 120 or another system component and included in the eCommerce authentication request.
The merchant node 120 communicates the eCommerce authentication request toward the authentication node 130 for authentication processing to authenticate the purchaser. The merchant node 120 may communicate the eCommerce authentication request using a software plug-in provided by a provider of the authentication node 130. Authentication of the purchaser can include determining whether the purchaser possesses secret information that should only be known to the account owner or another person who has been authorized by the account owner to make purchases using the account.
As will be explained in further detail below, an authentication gateway node 100 is disclosed herein that controls which eCommerce authentication requests from the merchant node 120 and other merchant nodes 120 cause authentication of purchasers. The authentication gateway node 100 may also generate a credit/debit account warning message which notifies a credit/debit finance issuer node 140 (e.g., card issuing bank server) that privileges with an account should be halted/frozen (e.g., cancel card) or otherwise modified.
The authentication gateway node 100 may intercept or otherwise receive the eCommerce authentication request from the merchant node 120 and determine whether authentication will be performed by the authentication node 130. The authentication gateway node 100 may, for example, selectively either route the eCommerce authentication request to the authentication node 130 for authentication or respond to the merchant node 120 without authentication by the authentication node 130 (e.g., some eCommerce authentication requests bypass the authentication node 130). Alternatively, the authentication gateway node 100 may mark the eCommerce authentication requests to indicate whether they are to be authenticated by the authentication node 130 (e.g., all eCommerce authentication requests flow through the authentication node 130 but only some cause authentication). These and other operations by the authentication gateway node 100 are described in further detail below.
Pursuant to one type of authentication process, the authentication node 130 communicates an authentication challenge message to the user terminal 110 which requires the purchaser to enter a security code to complete the purchase. The entered security code is returned to the authentication node 130 in a response message. The security code may be a password, personal identification number (PIN), electronic security token, or other secret information known to the account owner.
The authentication node 130 can compare the security code to an expected code, and apply one or more rules which may be defined by the card issuing bank (referred to more generally as the credit/debit finance issuer node 140 below) to generate an authentication response (e.g., authentication response code) that indicates an outcome of the authentication process.
One type of authentication process is known as a 3-D Secure protocol that can be performed by the authentication node 130 operating as a 3-D Secure authentication server. The 3-D Secure protocol was developed by financial card associations, including Visa and MasterCard, and has become an industry standard. The protocol uses XML messages sent over secure socket layer (SSL) connections between the user terminal 110 and the authentication node 130, which can also be referred to as an access control server (ACS). The authentication challenge can be presented through the user terminal 110 to the purchaser within the same web browser window as an in-line session (referred to as an inframe authentication session) or can be presented in a separate window (e.g., pop-up window).
An advantage to merchants of using purchaser authentication is a reduction in “unauthorized transaction” chargebacks. A disadvantage to merchants is that they pay a software setup fee, monthly fee, and per-authentication fee for use of the 3-D Secure access control server provided by the authentication node 130. Moreover, 3-D Secure operation can be complicated and create transaction failures.
Some purchasers view the additional authentication steps as a nuisance or obstacle to completing transactions and/or they erroneously interpret the authentication challenge (e.g., pop-up window) as originating from a fraudulent phishing site/process, which can result in a substantial increase in transaction abandonment by the purchaser and lost revenue to merchants. Some 3-D Secure authentication processes require the purchaser to complete an authentication registration process for the cardholder's financial account, including agreeing to all terms and conditions presented by 3-D Secure, before the purchaser can proceed with a purchase. Purchasers who are unwilling to undertake the risk or inconvenience of registering their card during a purchase, are forced to abandon the transaction. Moreover, some user terminals, such as those having mobile web browsers, can lack features (e.g, support for window frames and/or pop-ups) necessary for proper operation of a 3-D Secure authentication process.
For these and other reasons, some embodiments disclosed herein are directed to the authentication gateway node 100 generating risk scores for eCommerce authentication requests based on comparison of the reported list of wireless device identifiers from the user terminal 110 to a registered list of wireless device identifiers which has been associated with the user terminal identifier, and selectively providing the eCommerce authentication requests to the authentication node 130 based on the risk scores. The authentication gateway node 100 can include a risk score generator 104 that generates risk scores based on comparison of a reported list of wireless device identifiers, which is received as part of an eCommerce authentication request, to a registered list of wireless device identifiers that been obtained from a repository 102 containing lists of device identifiers that have been registered with user terminal identifiers.
The authentication gateway node 100 can be configured to operate on eCommerce authentication requests in-flight before being delivered to the authentication node 130, and control, based on the risk scores, which of the eCommerce authentication requests are processed by the authentication node 130 for authentication of purchasers and generation of authentication responses based on the outcomes of the authentication.
In one embodiment, only eCommerce authentication requests having risk scores that satisfy a defined rule are provided to the authentication node 130 for authentication processing and generation of the authentication responses based on the authentication processing, while other eCommerce authentication requests (having risk scores that do not satisfy the defined rule) bypass authentication processing by the authentication node 130. When bypassing authentication processing by the authentication node 130, the authentication gateway node 100 may generate an authentication response based on the risk score for the eCommerce authentication request (e.g., generate an authentication response indicating that the purchaser was properly authenticated) and communicate the authentication response to the merchant node 120 as if it had originated from the authentication node 130. When the authentication response is generated by the authentication gateway node 100, it may contain the same or similar content to an authentication response generated by the authentication node 130 so that the merchant node 120 is not aware that the authentication response was generated without authentication of the purchaser being performed by the authentication node 130.
When selectively providing the eCommerce authentication request to the authentication node 130, the authentication gateway node 100 may selectively mark the eCommerce authentication request to indicate whether authentication of the purchaser by the authentication node 130 is requested based on whether the risk score satisfies a defined rule. The authentication gateway node 130 then performs authentication processing (e.g., providing authentication challenges to purchasers) for only the eCommerce authentication requests that are marked for authentication. The authentication gateway node 130 can then generate the authentication responses based on a result of the authentication processing when performed, or based on the risk score when authentication processing is not performed.
In another embodiment, when selectively providing the eCommerce authentication request to the authentication node 130, the authentication gateway node 100 selectively routes the eCommerce authentication request to the authentication node 130 for authentication of the purchaser based on whether the risk score satisfies a defined rule. Accordingly, the authentication node 130 performs purchaser authentication processes for each eCommerce authentication request that it receives, however the authentication node 130 only receives eCommerce authentication requests having risk scores that the authentication gateway node 100 determined to satisfy a defined rule (e.g., having a risk score that exceeds a threshold level or alternatively that does not exceed a threshold level).
In another embodiment, the authentication node 130 can include some of the functionality described herein of the authentication gateway node 100. The authentication node 130 can receive all eCommerce authentication requests, but selectively generate an authentication challenge to the user equipment 110 (
Depending upon the risk score, the authentication gateway node 100 may generate a credit/debit account warning message which notifies the credit/debit finance issuer node 140 (e.g., card issuing bank server) that privileges with an account should be halted/frozen (e.g., cancel card) or otherwise modified.
Although the authentication gateway node 100 is shown as being separate from the merchant node 120, in some embodiments the authentication gateway node 100 is incorporated into the credit/debit finance issuer node 140 or the merchant node 120 so that at least some of the operations disclosed herein as being performed by the authentication gateway node 100 are performed within the credit/debit finance issuer node 140 or the merchant node 120. Thus for example, the risk scores can be generated internal to the merchant node 120 and used to control when eCommerce authentication requests are communicated to the authentication node 130. The merchant node 120 can use the risk score to selectively send an eCommerce authentication request to the authentication node 130 for authentication of the purchaser when the risk score satisfies a defined rule or send the financial transaction to the acquirer node 122 and credit/debit finance issuer node 140 for verification against the cardholder's account without authentication of the purchaser by the authentication node 130 when the risk score does not satisfy a defined rule.
Similarly, although the authentication gateway node 100 is shown as being separate from the authentication node 130, in some embodiments the authentication gateway node 100 is incorporated into the authentication node 130 so that at least some of the operations disclosed herein as being performed by the authentication gateway node 100 are performed within the authentication node 130. Thus for example, the risk scores can be generated internal to the authentication node 130 and used to control which of the eCommerce authentication requests cause authentication challenges to be generated to purchasers.
The authentication response (e.g., 3-D Secure authentication response code) can be generated by the authentication node 130, based on authentication processes performed with the purchaser and/or may be generated by the authentication gateway node 100 based on the risk score (e.g., without authentication processing by the authentication node 130) and provided to the merchant node 120. The merchant node 120 receives the authentication response and may deny the transaction based on content of the authentication response (e.g., based on the risk score generated by the authentication gateway node 100 and/or based on the result of authentication processes by the authentication node). The merchant node 120 can initiate verification of the transaction by communicating to a credit/debit finance issuer node 140, via an acquirer node 122 (e.g., merchant's bank), the authentication response and content of the eCommerce authentication request (e.g., cardholder information, other content of an eCommerce authentication request disclosed herein, etc).
The acquirer node 122 routes the authentication response and the content of the eCommerce authentication request to a credit/debit finance issuer node 140 (e.g., card issuing bank server such as a Visa or other card server via VisaNet, BankNet, etc.). The credit/debit finance issuer node 140 generates an authorization decision based on whether the account number has a sufficient credit limit and/or existing funds to cover the amount of the financial transaction, and can further generate the authorization decision based on the authentication response from the authentication node 130 and/or the authentication gateway node 100.
The credit/debit finance issuer node 140 communicates its authorization decision to the acquirer node 122, which communicates an authorization decision to the merchant node 120. The merchant node 120 decides whether to complete the transaction with the purchaser or to deny the transaction based on the authorization decision from the acquirer node 122.
Further example operations by the authentication gateway node 100 are explained below with regard to
Referring to
Controlling (block 204) authentication can include selectively providing the eCommerce authentication request to an authentication node 130 based on the risk score. Authentication may be controlled (block 204) by selectively marking the eCommerce authentication request to indicate whether authentication of the purchaser by the authentication node 130 is requested, based on whether the risk score satisfies a defined rule. Alternatively, authentication may be controlled (block 204) by selectively routing the eCommerce authentication request to the authentication node 130 for authentication of the purchaser based on whether the risk score satisfies a defined rule.
The authentication gateway node 100 may use further information when generating the risk score. In one embodiment, the risk score is generated based on comparison of the reported list of wireless device identifiers to the registered list of wireless device identifiers, and further based on a financial account number, a transaction amount, an expiration date for a card associated with the financial account number, a verification value, and a cardholder's name contained in the eCommerce authentication request. Additional or other information may be used when generating the risk score in accordance with various embodiments disclosed herein.
In the alternative embodiment of
In the alternative embodiment of
The risk score may additionally or alternatively be generated based on identifying a match between one of the wireless device identifiers in the reported list and one of the wireless device identifiers in the registered list, and determining a type of radio access technology used by the user terminal to communicate with a wireless device having the one of the wireless device identifiers. The risk score can then be generated based on the type of radio access technology. The risk score may be generated based on a maximum communication range associated with the various radio access technologies. The risk of fraud associated with an eCommerce transaction may be determined based on an inverse proportional relationship to the maximum communication range of the radio access technology is used by the user terminal 110 to communicate with the wireless device.
For example, at a first time the user terminal 110 reports as part of an eCommerce transaction request that it presently observes a Bluetooth connected device identifier which is determined to match a device identifier in the registered list. In a second time the user terminal 110 reports as part of an eCommerce transaction request that it presently observes a WLAN connected device identifier which is determined to match a device identifier in the registered list. The shorter range and lower power nature of the Bluetooth protocol compared to the WLAN protocol makes it more likely that the Bluetooth connected device identifier is owned by the same person who owns the user terminal 110. The WLAN connected device identifier may be a WLAN router that is owned by a business where the user is a customer and is simultaneously shared with many other persons. The eCommerce transaction arising at the first time is therefore determined to have a lower risk of fraud based on the Bluetooth connectivity to the wireless device compared to the eCommerce transaction arising at the second time having WLAN connectivity to the wireless device.
In one embodiment, the risk score can be generated to indicate a first risk level for the pending eCommerce transaction based on the type of radio access technology being a Bluetooth protocol. In contrast, the risk score can be generated to indicate a second risk level for the pending eCommerce transaction based on the type of radio access technology being a wireless local area network protocol, where the first risk level indicates a lower fraud risk for the pending eCommerce transaction than the second risk level.
The risk score may be generated to indicate a lower risk when the user terminal 110 has successfully completed Bluetooth pairing to the reported wireless device versus when the reported wireless device is discovered by the user terminal 110 but has not been paired. Similarly, the risk score may be may be generated to indicate a lower risk when the user terminal 110 has successfully completed operations to join a WLAN network including the reported wireless device versus when the reported wireless device is discovered by the user terminal 110 but has not been joined thereto on a shared network.
The risk score may be generated based on how many wireless device identifiers in the reported list from the user terminal 110 match wireless device identifiers in the registered list for that user terminal 110. The contributions of any of the wireless device identifiers to the risk score may be based on whether the wireless device having the wireless device identifiers is identified in the list as having established a traffic data connection with the user terminal 110. The risk score may be generated with wireless device identifiers associated with an established traffic data connection to the user terminal 110 (e.g., paired or joined to a shared network) providing a greater contribution to generation of a lower risk score than wireless device identifiers that are discovered by the user terminal 110 but which have not established a traffic data connection to the user terminal 110 (e.g., not paired or not joined to a shared network).
The authentication gateway node 100 can update the repository 102 based on receiving feedback of whether authentication of eCommerce authentication requests completed successfully. Wireless device identifiers that were reported as part of eCommerce authentication requests that successfully completed authentication, e.g., by the authentication node 130, can be added to the respective lists in the repository 102 with an association to the user terminal identifiers associated with those eCommerce authentication requests. In the embodiment of
In the alternative embodiment of
The repository 102 can be updated based on eCommerce authentication request received from numerous different merchant nodes 120. Referring to
In the embodiment of
In the embodiment of
In the embodiment of
The processor 1110 may include one or more data processing circuits, such as a general purpose and/or special purpose processor (e.g., microprocessor and/or digital signal processor) that may be collocated or distributed across one or more networks. The processor 1110 is configured to execute program code 1122 in the memory 1120, described below as a computer readable storage medium, to perform some or all of the operations for one or more of the embodiments disclosed herein.
When configured as a user terminal 110, the system 1100 includes one or more radio transceivers configured to communicate with wireless devices 112 using one or more radio access technologies. The radio access technologies may include, but are not limited to, Near Field Communication (NFC), Bluetooth, WLAN (IEEE 802.11), 3GPP Long Term Evolution (LTE), etc.
In the above-description of various embodiments of the present disclosure, aspects of the present disclosure may be illustrated and described herein in any of a number of patentable classes or contexts including any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof. Accordingly, aspects of the present disclosure may be implemented in entirely hardware, entirely software (including firmware, resident software, micro-code, etc.) or combining software and hardware implementation that may all generally be referred to herein as a “circuit,” “module,” “component,” or “system.” Furthermore, aspects of the present disclosure may take the form of a computer program product comprising one or more computer readable media having computer readable program code embodied thereon.
Any combination of one or more computer readable media may be used. The computer readable media may be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include 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), an appropriate optical fiber with a repeater, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device. Program code embodied on a computer readable signal medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., dr any suitable combination of the foregoing.
Computer program code for carrying out operations for aspects of the present disclosure may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Scala, Smalltalk, Eiffel, JADE, Emerald, C++, C#, VB.NET, Python or the like, conventional procedural programming languages, such as the “C” programming language, Visual Basic, Fortran 2003, Perl, COBOL 2002, PHP, ABAP, dynamic programming languages such as Python, Ruby and Groovy, or other programming languages. The program code 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) or in a cloud computing environment or offered as a service such as a Software as a Service (SaaS).
Aspects of the present disclosure 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 disclosure. 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 program instructions. These computer 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 instruction execution apparatus, create a mechanism for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer readable medium that when executed can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions when stored in the computer readable medium produce an article of manufacture including instructions which when executed, cause a computer to implement the function/act specified in the flowchart and/or block diagram block or blocks. The computer program instructions may also be loaded onto a computer, other programmable instruction execution apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatuses or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
It is to be understood that the terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this disclosure belongs. It will be further understood that terms, such as those defined in commonly used dictionaries, should be interpreted as having a meaning that is consistent with their meaning in the context of this specification and the relevant art and will not be interpreted in an idealized or overly formal sense expressly so defined herein.
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 aspects of the present disclosure. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block 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 combinations of special purpose hardware and computer instructions.
The terminology used herein is for the purpose of describing particular aspects only and is not intended to be limiting of the disclosure. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof. As used herein, the term “and/or” includes any and all combinations of one or more of the associated listed items. Like reference numbers signify like elements throughout the description of the figures.
The corresponding structures, materials, acts, and equivalents of any means or step plus function elements in the claims below are intended to include any disclosed structure, material, or act for performing the function in combination with other claimed elements as specifically claimed. The description of the present disclosure has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the disclosure 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 disclosure. The aspects of the disclosure herein were chosen and described in order to best explain the principles of the disclosure and the practical application, and to enable others of ordinary skill in the art to understand the disclosure with various modifications as are suited to the particular use contemplated.