Patent Description:
Many applications use signed device tokens for improved security. The device token includes information about the device that the application is installed on. The applications transmit the device token to a remote server to identify the source of the communications when communicating with or requesting information from the remote server. However, the process of generating and maintaining signed device tokens may be resource intensive and require significant amounts of CPU, memory, and battery power. Accordingly, it would be advantageous to reduce the resource requirements of signed device token generation, while maintaining the provided security.

<CIT> discloses a method for application management and an electronic device. The electronic device includes a memory configured to store a first application, and a processor configured to obtain a request for installing a second application, and to compare a first identifier corresponding to the first application with a second identifier corresponding to the second application, if the first identifier is the same as the second identifier, compare first signature information corresponding to the first application with second signature information corresponding to the second application, if the first signature information is different from the second signature information, compare the first signature information with additional signature information corresponding to the second application, and if the first signature information is the same as the additional signature information, replace at least a portion of the first application by using at least a portion of the second application.

The scope of the invention is set out in the appended claims. In one aspect, a computer device configured to install computer applications is provided. The computer device includes at least one processor in communication with at least one memory device. The at least one processor is programmed to receive a request to install a first application on a user computer device. The at least one processor is also programmed to scan at least one memory device of the user computer device for a device token associated with a second application. Upon detection of the device token, at least one processor is programmed to retrieve the device token from the at least one memory device of the user computer device. The at least one processor is further programmed to validate the retrieved device token. Upon validation of the device token, the at least one processor is also programmed to install the first application. Moreover, the at least one processor is programmed to associate the device token with the first application.

In another aspect, a system for installing applications on computer devices is provided. The system includes an installation server including at least one memory device configured to store a first application to install and at least one processor in communication with at least one memory device. The at least one processor is programmed to receive, from a user computer device, a request to install the first application on the user computer device. The at least one processor is also programmed to instruct the user computer device to scan internally for a device token associated with a second application. Upon detection of the device token, the at least one processor is programmed to receive the device token from the user computer device. The at least one processor is further programmed to validate the received device token. Upon validation of the received device token, the at least one processor is also programmed to transmit one or more installation files associated with the first application to the user computer device. Moreover, the at least one processor is programmed to instruct the user computer device to associate the device token with the first application.

In yet a further aspect, at least one non-transitory computer-readable storage media having computer-executable instructions embodied thereon is provided. When executed by at least one processor, the computer-executable instructions cause the processor to receive a request to install a first application on a user computer device. The computer-executable instructions also cause the processor to scan at least one memory device of the user computer device for a device token associated with a second application. Upon detection of the device token, the computer-executable instructions cause the processor to retrieve the device token from the at least one memory device of the user computer device. The computer-executable instructions further cause the processor to validate the retrieved device token. Upon validation of the device token, the computer-executable instructions also cause the processor to install the first application. Moreover, the computer-executable instructions cause the processor to associate the device token with the first application.

The Figures described below depict various aspects of the systems and methods disclosed therein. It should be understood that each Figure depicts an embodiment of a particular aspect of the disclosed systems and methods, and that each of the Figures is intended to accord with a possible embodiment thereof. Further, wherever possible, the following description refers to the reference numerals included in the following Figures, in which features depicted in multiple Figures are designated with consistent reference numerals.

There are shown in the drawings arrangements which are presently discussed, it being understood, however, that the present embodiments are not limited to the precise arrangements and are instrumentalities shown, wherein:.

<FIG> illustrates a data flow diagram of an exemplary system <NUM> for installing applications on a user computer device <NUM> in accordance with one embodiment of the disclosure.

In the exemplary embodiment, the user computer device <NUM> includes Application A <NUM> which has been previously installed on the user computer device <NUM>. Application A <NUM> is associated with a Token A <NUM>. In the exemplary embodiment, Token A <NUM> identifies the user computer device <NUM> when Application A <NUM> is used. For example, Application A <NUM> may be a banking application that allows a user to access their bank account. In some embodiments, when Application A <NUM> is activated, the user is requested to login to the application. The login information and Token A <NUM> are transmitted to Application A Server <NUM>. Application A Server <NUM> uses login information and Token A <NUM> to authenticate the user and the device, respectively, prior to allowing the user access to his or her account. In some embodiments, Token A <NUM> was registered with Application A Server <NUM>. During the registration process, Token A <NUM> is issued by a remote server, such as Application A Server <NUM>. After the remote server generates Token A <NUM>, Token A <NUM> is protected using public-private key encryption. The signature of Token A <NUM> is then stored by Application A Server <NUM> for future reference. To authenticate user computer device <NUM>, Application A Server <NUM> validates Token A <NUM> by analyzing the signature of the received version of Token A <NUM> to the version stored on Application A Server <NUM> to ensure the integrity of Token A <NUM>.

In the exemplary embodiment, Token A <NUM> is generated based on a scan of user computer device <NUM>. In these embodiments, Token A <NUM> is generated based on the results of the scan of user computer device <NUM> and one or more attributes of the user computer device <NUM>. In some embodiments, Token A is generated based on at least one of a device identifier, one or more attached devices, one or more device settings, one or more software versions installed on the computer device, color, pixel density, applications installed, and one or more stored biometric identifiers.

In the exemplary embodiment, when the user wishes to install a new application on user computer device <NUM>, the user downloads an Application B Installer <NUM> onto user computer device <NUM> from Application B Installation Server <NUM>. In some embodiments, Application B Installer <NUM> is an application configured to install Application B on a user computer device <NUM>. In these embodiments, Application B Installer <NUM> is downloaded from Application B Installation Server <NUM> and facilitates communication between the user, user computer device <NUM> and Application B Installation Server <NUM>. In some embodiments, Application B Installer <NUM> includes a software development kit (SDK) that is configured to install one or more applications that have a common purpose (e.g., software for financial transactions) or common specialized functionality (e.g., multi-factor secured logins).

In some embodiments, Application B Installation Server <NUM> is a website associated with Application B. In other embodiments, Application B Installation Server <NUM> is an app store that is configured to store, sell, and transmit installation files for different application. In these embodiments, Application B Installation Server <NUM> is a central server that allows a plurality of user computer devices <NUM> to access and download applications for installation. In some further embodiments, Application B Installation Server <NUM> assists the user in the installation process, such as by communicating with an Application B Server (not shown) to register the user's installation of application B. In these embodiments, Application B Installation Server <NUM> may request registration information from user via user computer device <NUM> and transmit the registration information to Application B Server.

<FIG> illustrates an exemplary process <NUM> for installing applications on a user computer device <NUM> using the system <NUM> (both shown in <FIG>) in accordance with one embodiment of the disclosure. In the exemplary embodiment, the steps of process <NUM> are performed by at least one of user computer device <NUM> and Application B Installation Server <NUM> (both shown in <FIG>).

In the exemplary embodiment, the user computer device <NUM> receives <NUM> a request to install an application on the user computer device <NUM>. The user computer device <NUM> transmits the request to install the application to Application B Installation Server <NUM>. Application B Installation Server <NUM> transmits the Application B Installer <NUM> to the user computer device <NUM>. The user computer device activates the Application B Installer <NUM>.

In the exemplary embodiment, the Application B Installer <NUM> is configured to scan <NUM> the user computer device <NUM> for a device token, such as Token A <NUM>. In other embodiments, Application B Installation Server <NUM> scans <NUM> the user computer device <NUM> for the device token. In still further embodiments, Application B Installation Server <NUM> transmits instructions to user computer device <NUM> to scan <NUM> itself for the device token. In some embodiments, the device token to scan for is determined by one of the Application B Installation Server <NUM> and the Application B Installer <NUM>. The device token to scan for is determined based on at least one second application associated with the first application. The at least one device token is associated with the at least one second application. For example, if the user is installing Application B, the Application B Installer <NUM> scans <NUM> for a token associated with Application A <NUM>, such as Token A <NUM> (both shown in <FIG>).

In the exemplary embodiment, if the device token is detected <NUM>, one of the Application B Installation Server <NUM> and the Application B Installer <NUM> validates <NUM> the device token. In some embodiments, the Application B Installer <NUM> retrieves the device token the device token from the user computer device <NUM>. The Application B Installer <NUM> transmits, to the Application B Installation Server <NUM>, a copy of the device token for validation. The Application B Installation Server <NUM> validates the device token. The Application B Installer <NUM> receives, from the Application B Installation Server <NUM>, the results of the validation of the device token.

In some embodiments, Application B Installer <NUM> encrypts Token A <NUM> and transmits the encrypted token to Application B Installation Server <NUM>. In some embodiments, Application B Installer <NUM> encrypts the Token A <NUM> with a private encryption key assigned to the Installer <NUM> by Application B Installation Server <NUM>. Application B Installation Server <NUM> decrypts the transmission to obtain Token A <NUM>. Then Application B Installation Server <NUM> contacts Application A Server <NUM>, such as via an advanced programming interface (API) call, and transmits Token A <NUM> the Application A Server <NUM>. Application A Server <NUM> validates Token A <NUM>, such as by analyzing Token A's signature with a stored version of that signature. Application A Server <NUM> then informs Application B Installation Server <NUM> of the results of the validation. In some embodiments, Application B Installation Server <NUM> instructs Application B Installer <NUM> to abort installation of Application B. In other embodiments, Application B Installer <NUM> considers the failed validation as an indicator that no token exists and acts accordingly.

In the exemplary embodiment, if the device token is validated <NUM>, the Application B Installer <NUM> installs <NUM> the application on the user computer device <NUM>. The Application B Installer <NUM> associates <NUM> the device token with the application. For example, Token A <NUM> would be associated with both Application A <NUM> and installed Application B. Both applications would utilize Token A <NUM> for validation purposes.

In some embodiments, one of the Application B Installation Server <NUM> and the Application B Installer <NUM> determines a remote server associated with the second application, such as Application A Server <NUM> associated with Application A <NUM>. In these embodiments, the one of the Application B Installation Server <NUM> and the Application B Installer <NUM> request registration information for the second application from the remote server. The one of the Application B Installation Server <NUM> and the Application B Installer <NUM> applies the registration information for the second application to the first application. In some further embodiments, the one of the Application B Installation Server <NUM> and the Application B Installer <NUM> transmits the registration information and the device token to a remote application server associated with the first application, such as Application B Server (not shown).

In some embodiments, if a device token is not detected on user computer device <NUM>, then one of the Application B Installation Server <NUM> and the Application B Installer <NUM> generates <NUM> a device token. During the generation process, the device token is issued by a remote server, such as Application B Installation Server <NUM> and the Application B Installer <NUM>. After the remote server generates the device token, the device token is protected using public-private key encryption. The signature of device token is then stored by the remote server for future reference.

In the exemplary embodiment, the device token is generated <NUM> based on at least one of a device identifier, one or more attached devices, one or more device settings, one or more software versions installed on the computer device, color, pixel density, applications installed, and one or more stored biometric identifiers. In some further embodiments, the one of the Application B Installation Server <NUM> and the Application B Installer <NUM> encrypts the generated device token with a public key encryption and configures a security wrapper for the generated device token.

After the device token is generated <NUM>, the Application B Installer <NUM> installs <NUM> the application on the user computer device <NUM>. The Application B Installer <NUM> associates <NUM> the device token with the application. In some embodiments, the one of the Application B Installation Server <NUM> and the Application B Installer <NUM> receives registration information from a user, such as through an interface on user computer device <NUM>. The one of the Application B Installation Server <NUM> and the Application B Installer <NUM> associates the registration information with the generated device token. In some embodiments, the one of the Application B Installation Server <NUM> and the Application B Installer <NUM> generate <NUM> a new device token if the detected device token is not validated in Step <NUM>.

<FIG> illustrates a simplified block diagram of an exemplary application installation system <NUM> for performing installing applications on a plurality of user computer devices <NUM> in accordance with one embodiment of the disclosure. In the exemplary embodiment, system <NUM> may be used for installing applications on user computer devices <NUM> with signed device tokens. As described herein, an application installation ("AI") server <NUM> (also known as a AI computer device <NUM>), may be configured to (i) receive a request to install an application from a user computer device <NUM>; (ii) scan the user computer device <NUM> for a device token; (iii) upon detection of the device token, retrieve the device token; (iv) validate the device token; (v) install the application on the user computer device; and (vi) associate the device token with the application, as described herein.

In the exemplary embodiment, user computer devices <NUM> are computers that include a web browser or a software application, which enables user computer devices <NUM> to access remote computer devices, such as AI server <NUM> and application server <NUM>, using the Internet or other network. More specifically, user computer devices <NUM> may be communicatively coupled to the Internet through many interfaces including, but not limited to, at least one of a network, such as the Internet, a local area network (LAN), a wide area network (WAN), or an integrated services digital network (ISDN), a dial-up-connection, a digital subscriber line (DSL), a cellular phone connection, and a cable modem. User computer devices <NUM> may be any device capable of accessing the Internet including, but not limited to, a desktop computer, a laptop computer, a personal digital assistant (PDA), a cellular phone, a smartphone, a tablet, a phablet, wearable electronics, smart watch, or other web-based connectable equipment or mobile devices. In some embodiments, user computer devices <NUM> are similar to user computer device <NUM> (shown in <FIG>).

A database server <NUM> is communicatively coupled to a database <NUM> that stores data. In one embodiment, database <NUM> may include device prints, token information, registration information, and application installation files. In some embodiments, database <NUM> is stored remotely from AI server <NUM>. In some embodiments, database <NUM> is decentralized. In the exemplary embodiment, a user, may access database <NUM> via user computer device <NUM> by logging onto AI server <NUM>, as described herein. In some embodiments, database <NUM> includes any computer server, cloud or other digital data storage device.

AI server <NUM> may be in communication with a plurality of user computer devices <NUM> and a plurality of application servers <NUM>, to install applications associated with those servers <NUM>. In some embodiments, AI server <NUM> is similar to Application B Installation Server <NUM> (shown in <FIG>).

In the exemplary embodiment, application server <NUM> is a remote server accessed in the execution of an application installed on the user computer device <NUM>. For example, application server <NUM> may be associated with a bank and be accessed during the execution of a banking application. In the exemplary embodiment, application server <NUM> is a computer that allows remote computers that include a web browser or a software application, such as user computer devices <NUM>, to access for communication, using the Internet or other network. More specifically, application server <NUM> may be communicatively coupled to the Internet through many interfaces including, but not limited to, at least one of a network, such as the Internet, a local area network (LAN), a wide area network (WAN), or an integrated services digital network (ISDN), a dial-up-connection, a digital subscriber line (DSL), a cellular phone connection, and a cable modem. Application server <NUM> may be any device capable of accessing the Internet including, but not limited to, a desktop computer, a laptop computer, a personal digital assistant (PDA), a cellular phone, a smartphone, a tablet, a phablet, wearable electronics, smart watch, or other web-based connectable equipment or mobile devices. In some embodiments, application server <NUM> is similar to Application A Server <NUM> (shown in <FIG>).

<FIG> depicts an exemplary configuration of client computer device shown in <FIG> and <FIG>, in accordance with one embodiment of the present disclosure. User computer device <NUM> may be operated by a user <NUM>. User computer device <NUM> may include, but is not limited to, user computer device <NUM> (shown in <FIG>) and user computer devices <NUM> (shown in <FIG>). User computer device <NUM> may include a processor <NUM> for executing instructions. In some embodiments, executable instructions may be stored in a memory area <NUM>. Processor <NUM> may include one or more processing units (e.g., in a multi-core configuration). Memory area <NUM> may be any device allowing information such as executable instructions and/or transaction data to be stored and retrieved. Memory area <NUM> may include one or more computer readable media.

User computer device <NUM> may also include at least one media output component <NUM> for presenting information to user <NUM>. Media output component <NUM> may be any component capable of conveying information to user <NUM>. In some embodiments, media output component <NUM> may include an output adapter (not shown) such as a video adapter and/or an audio adapter. An output adapter may be operatively coupled to processor <NUM> and operatively coupleable to an output device such as a display device (e.g., a cathode ray tube (CRT), liquid crystal display (LCD), light emitting diode (LED) display, or "electronic ink" display) or an audio output device (e.g., a speaker or headphones).

In some embodiments, media output component <NUM> may be configured to present a graphical user interface (e.g., a web browser and/or a client application) to user <NUM>. A graphical user interface may include, for example, an interface for accessing a banking application. In some embodiments, user computer device <NUM> may include an input device <NUM> for receiving input from user <NUM>. User <NUM> may use input device <NUM> to, without limitation, conduct a financial transaction.

Input device <NUM> may include, for example, a keyboard, a pointing device, a mouse, a stylus, a touch sensitive panel (e.g., a touch pad or a touch screen), a gyroscope, an accelerometer, a position detector, a biometric input device, and/or an audio input device. A single component such as a touch screen may function as both an output device of media output component <NUM> and input device <NUM>.

User computer device <NUM> may also include a communication interface <NUM>, communicatively coupled to a remote device such as AI server <NUM> and application server <NUM> (both shown in <FIG>). Communication interface <NUM> may include, for example, a wired or wireless network adapter and/or a wireless data transceiver for use with a mobile telecommunications network.

Stored in memory area <NUM> are, for example, computer readable instructions for providing a user interface to user <NUM> via media output component <NUM> and, optionally, receiving and processing input from input device <NUM>. A user interface may include, among other possibilities, a web browser and/or a client application. Web browsers enable users, such as user <NUM>, to display and interact with media and other information typically embedded on a web page or a website from AI server <NUM> or application server <NUM>. A client application may allow user <NUM> to interact with, for example, AI server <NUM>. For example, instructions may be stored by a cloud service, and the output of the execution of the instructions sent to the media output component <NUM>.

<FIG> depicts an exemplary configuration of server system as shown in <FIG> and <FIG>, in accordance with one embodiment of the present disclosure. Server computer device <NUM> may include, but is not limited to, Application B Installation Server <NUM>, Application A Server <NUM> (both shown in <FIG>), database server <NUM>, AI server <NUM>, and application server <NUM> (all shown in <FIG>). Server computer device <NUM> may also include a processor <NUM> for executing instructions. Instructions may be stored in a memory area <NUM>. Processor <NUM> may include one or more processing units (e.g., in a multi-core configuration).

Processor <NUM> may be operatively coupled to a communication interface <NUM> such that server computer device <NUM> is capable of communicating with a remote device such as another server computer device <NUM>, AI server <NUM>, application server <NUM>, and user computer devices <NUM> (shown in Figure <NUM>) (for example, using wireless communication or data transmission over one or more radio links or digital communication channels). For example, communication interface <NUM> may receive requests from user computer devices <NUM> via the Internet, as illustrated in <FIG>.

Processor <NUM> may also be operatively coupled to a storage device <NUM>. Storage device <NUM> may be any computer-operated hardware suitable for storing and/or retrieving data, such as, but not limited to, data associated with database <NUM> (shown in <FIG>). In some embodiments, storage device <NUM> may be integrated in server computer device <NUM>. For example, server computer device <NUM> may include one or more hard disk drives as storage device <NUM>.

In other embodiments, storage device <NUM> may be external to server computer device <NUM> and may be accessed by a plurality of server computer devices <NUM>. For example, storage device <NUM> may include a storage area network (SAN), a network attached storage (NAS) system, and/or multiple storage units such as hard disks and/or solid state disks in a redundant array of inexpensive disks (RAID) configuration.

In some embodiments, processor <NUM> may be operatively coupled to storage device <NUM> via a storage interface <NUM>. Storage interface <NUM> may be any component capable of providing processor <NUM> with access to storage device <NUM>. Storage interface <NUM> may include, for example, an Advanced Technology Attachment (ATA) adapter, a Serial ATA (SATA) adapter, a Small Computer System Interface (SCSI) adapter, a RAID controller, a SAN adapter, a network adapter, and/or any component providing processor <NUM> with access to storage device <NUM>.

Processor <NUM> may execute computer-executable instructions for implementing aspects of the disclosure. In some embodiments, the processor <NUM> may be transformed into a special purpose microprocessor by executing computer-executable instructions or by otherwise being programmed. For example, the processor <NUM> may be programmed with the instructions.

At least one of the technical solutions to the technical problems provided by this system may include: (i) improved speed of installation of applications on mobile devices; (ii) reduced resource requirement for installation of applications on mobile devices; (iii) commonality of device tokens between related applications; (iv) improved device security for trusted applications; (v) improved security of device tokens; and (vi) reduced fraud risk on application use from trusted user computer devices.

The methods and systems described herein may be implemented using computer programming or engineering techniques including computer software, firmware, hardware, or any combination or subset thereof, wherein the technical effects may be achieved by performing at least one of the following steps: (a) receive a request to install a first application; (b) determine at least one second application associated with the first application; (c) determine at least one device token to scan for, wherein the at least one device token is associated with the at least one second application; (d) scan the at least one memory device for the at least one device token; (e) upon detection of the device token, retrieve the device token from the memory; (f) validate the retrieved device token; (g) transmit, to the installation server, a copy of the device token for validation; (h) receive, from the installation server, the results of the validation of the device token; (i) upon validation of the device token, install the first application; (j) generate a new device token if the detected device token is not validated; (k) associate the device token with the first application; (l) determine a remote server associated with the second application; (m) request registration information for the second application from the remote server; (n) apply the registration information for the second application to the first application; and (o) transmit the registration information and the device token to a remote application server associated with the first application.

In some further embodiments, the technical effects may also be achieved by performing at least one of the following steps: (a) if a device token is not detected, generate a device token based on at least one of a device identifier, one or more attached devices, one or more device settings, one or more software versions installed on the computer device, and one or more stored biometric identifiers; (b) encrypt the generated device token with a public key encryption; (c) configure a security wrapper for the generated device token; (d) install the first application on the user computer device; (e) associate the generated device token with the first application; (f) receive registration information from a user; and (g) associate the registration information with the generated device token.

As will be appreciated based upon the foregoing specification, the above-described embodiments of the disclosure may be implemented using computer programming or engineering techniques including computer software, firmware, hardware or any combination or subset thereof. Any such resulting program, having computer-readable code means, may be embodied or provided within one or more computer-readable media, thereby making a computer program product, i.e., an article of manufacture, according to the discussed embodiments of the disclosure. The computer-readable media may be, for example, but is not limited to, a fixed (hard) drive, diskette, optical disk, magnetic tape, semiconductor memory such as read-only memory (ROM), and/or any transmitting/receiving medium, such as the Internet or other communication network or link. The article of manufacture containing the computer code may be made and/or used by executing the code directly from one medium, by copying the code from one medium to another medium, or by transmitting the code over a network.

These computer programs (also known as programs, software, software applications, "apps", or code) include machine instructions for a programmable processor, and can be implemented in a high-level procedural and/or object-oriented programming language, and/or in assembly/machine language. As used herein, the terms "machine-readable medium" and "computer-readable medium" refer to any computer program product, apparatus and/or device (e.g., magnetic discs, optical disks, memory, Programmable Logic Devices (PLDs)) used to provide machine instructions and/or data to a programmable processor, including a machine-readable medium that receives machine instructions as a machine-readable signal. The "machine-readable medium" and "computer-readable medium," however, do not include transitory signals.

As used herein, a processor may include any programmable system including systems using micro-controllers, reduced instruction set circuits (RISC), application specific integrated circuits (ASICs), logic circuits, and any other circuit or processor capable of executing the functions described herein. The above examples are example only, and are thus not intended to limit in any way the definition and/or meaning of the term "processor.

As used herein, the term "database" may refer to either a body of data, a relational database management system (RDBMS), or to both. As used herein, a database may include any collection of data including hierarchical databases, relational databases, flat file databases, object-relational databases, object-oriented databases, and any other structured or unstructured collection of records or data that is stored in a computer system. The above examples are not intended to limit in any way the definition and/or meaning of the term database. Examples of RDBMS's include, but are not limited to, Oracle® Database, MySQL, IBM® DB2, Microsoft® SQL Server, Sybase®, and PostgreSQL. However, any database may be used that enables the systems and methods described herein. (Oracle is a registered trademark of Oracle Corporation, Redwood Shores, California; IBM is a registered trademark of International Business Machines Corporation, Armonk, New York; Microsoft is a registered trademark of Microsoft Corporation, Redmond, Washington; and Sybase is a registered trademark of Sybase, Dublin, California.

As used herein, the terms "software" and "firmware" are interchangeable, and include any computer program stored in memory for execution by a processor, including RAM memory, ROM memory, EPROM memory, EEPROM memory, and non-volatile RAM (NVRAM) memory. The above memory types are example only, and are thus not limiting as to the types of memory usable for storage of a computer program.

In another embodiment, a computer program is provided, and the program is embodied on a computer-readable medium. In an example embodiment, the system is executed on a single computer system, without requiring a connection to a server computer. In a further example embodiment, the system is being run in a Windows® environment (Windows is a registered trademark of Microsoft Corporation, Redmond, Washington). In yet another embodiment, the system is run on a mainframe environment and a UNIX® server environment (UNIX is a registered trademark of X/Open Company Limited located in Reading, Berkshire, United Kingdom). In a further embodiment, the system is run on an iOS® environment (iOS is a registered trademark of Cisco Systems, Inc. located in San Jose, CA). In yet a further embodiment, the system is run on a Mac OS® environment (Mac OS is a registered trademark of Apple Inc. located in Cupertino, CA). In still yet a further embodiment, the system is run on Android® OS (Android is a registered trademark of Google, Inc. of Mountain View, CA). In another embodiment, the system is run on Linux® OS (Linux is a registered trademark of Linus Torvalds of Boston, MA). The application is flexible and designed to run in various different environments without compromising any major functionality.

In some embodiments, the system includes multiple components distributed among a plurality of computer devices. One or more components may be in the form of computer-executable instructions embodied in a computer-readable medium. The systems and processes are not limited to the specific embodiments described herein. In addition, components of each system and each process can be practiced independent and separate from other components and processes described herein. Each component and process can also be used in combination with other assembly packages and processes. The present embodiments may enhance the functionality and functioning of computers and/or computer systems.

As used herein, an element or step recited in the singular and preceded by the word "a" or "an" should be understood as not excluding plural elements or steps, unless such exclusion is explicitly recited. Furthermore, references to "example embodiment," "exemplary embodiment," or "one embodiment" of the present disclosure are not intended to be interpreted as excluding the existence of additional embodiments that also incorporate the recited features.

Furthermore, as used herein, the term "real-time" refers to at least one of the time of occurrence of the associated events, the time of measurement and collection of predetermined data, the time to process the data, and the time of a system response to the events and the environment. In the embodiments described herein, these activities and events occur substantially instantaneously.

Claim 1:
A computer device (<NUM>) configured to install computer applications comprising at least one processor in communication with at least one memory device, the at least one processor programmed to:
receive (<NUM>) a request to install a first application on a user computer device;
scan (<NUM>) at least one memory device of the user computer device for a device token associated with a second application;
upon detection (<NUM>) of the device token, retrieve the device token from the at least one memory device of the user computer device;
validate (<NUM>) the retrieved device token;
upon validation of the device token, install (<NUM>) the first application; and
associate (<NUM>) the device token with the first application;
wherein the at least one processor is further programmed to:
determine a remote server associated with the second application;
request registration information for the second application from the remote server; and
apply the registration information for the second application to the first application.