U.S. patent application number 13/891695 was filed with the patent office on 2013-09-19 for methods of tracking remote software installations and registrations and related systems and computer program products.
This patent application is currently assigned to Qurio Holdings, Inc.. The applicant listed for this patent is QURIO HOLDINGS, INC.. Invention is credited to Patricia Scardino.
Application Number | 20130247029 13/891695 |
Document ID | / |
Family ID | 48484398 |
Filed Date | 2013-09-19 |
United States Patent
Application |
20130247029 |
Kind Code |
A1 |
Scardino; Patricia |
September 19, 2013 |
METHODS OF TRACKING REMOTE SOFTWARE INSTALLATIONS AND REGISTRATIONS
AND RELATED SYSTEMS AND COMPUTER PROGRAM PRODUCTS
Abstract
Methods of tracking remote software installations at a central
server may include receiving an installation message over a network
from a user device wherein the installation message indicates, an
installation of the software at the user device. After receiving
the installation message from the user device, an installation code
may be created responsive to receiving the installation message,
and the installation code may uniquely identify installation of the
software at the user device. The installation code may be
transmitted over the network to the user device, and the
installation code may be stored at the central server. Related
systems and computer program products are also discussed.
Inventors: |
Scardino; Patricia; (Apex,
NC) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
QURIO HOLDINGS, INC. |
Raleigh |
NC |
US |
|
|
Assignee: |
Qurio Holdings, Inc.
Raleigh
NC
|
Family ID: |
48484398 |
Appl. No.: |
13/891695 |
Filed: |
May 10, 2013 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
11239255 |
Sep 29, 2005 |
8458098 |
|
|
13891695 |
|
|
|
|
Current U.S.
Class: |
717/177 |
Current CPC
Class: |
G06F 8/61 20130101; G06Q
30/0277 20130101 |
Class at
Publication: |
717/177 |
International
Class: |
G06F 9/445 20060101
G06F009/445 |
Claims
1. A method of installing software at a user device, the method
comprising: receiving the software at the user device; storing the
software at the user device; transmitting an installation message
over a network to a central server wherein the installation message
indicates installation of the software at the user device; after
transmitting the installation message, receiving an installation
code from the central server over the network wherein the
installation code uniquely identifies installation of the software
at the user device; and storing the installation code at the user
device.
2. A method according to claim 1 further comprising: after storing
the installation code in memory at the user device, accepting user
input of registration information at the user device; and
transmitting the registration information and the installation code
over the network to the central server.
3. A method according to claim 2 wherein the registration
information includes a user name for services provided by the
central server using the software at the user device.
4. A method according to claim 2 further comprising: organizing
digital image files at the user device using the software; and
sharing at least one of the digital image files over the network
using the software.
5. A method according to claim 2 further comprising: organizing
digital image files at the user device using the software; and
transmitting a request over the network to print at least one of
the digital image files using the software.
6. A method according to claim 1 wherein receiving the software
includes receiving an acquisition code defining a source of the
software, and wherein the installation message includes the
acquisition code.
7. A method according to claim 1 wherein receiving the software
includes receiving an affiliate code defining pricing for services
provided by the central server for the user device using the
software, and wherein the installation message includes the
affiliate code.
8. A method according to claim 1 wherein receiving the software at
the user device comprises receiving the software on a physical
storage medium at the user device.
9. A method according to claim 1 wherein receiving the software at
the user device comprises receiving the software as a download over
the network.
10. A computer program product for installing software at a user
device, the computer program product comprising a computer readable
medium having computer readable program code embodied therein, the
computer readable program code comprising: computer readable
program code configured to receive the software at the user device;
computer readable program code configured to store the software at
the user device; computer readable program code configured to
transmit an installation message over a network to a central server
wherein the installation message indicates installation of the
software at the user device; computer readable program code
configured to receive an installation code from the central server
over the network after transmitting the installation message,
wherein the installation code uniquely identifies installation of
the software at the user device; and computer readable program code
configured to store the installation code at the user device.
Description
RELATED APPLICATION
[0001] The present application is related to U.S. Pat. No.
7,516,104, entitled METHODS OF PROVIDING SOFTWARE OVER A NETWORK
AND RELATED SYSTEMS AND COMPUTER PROGRAM PRODUCTS, which issued on
Apr. 7, 2009; and this application is also a divisional application
under 35 U.S.C. .sctn.121 of U.S. application Ser. No. 11/239,255,
entitled METHODS OF TRACKING REMOTE SOFTWARE INSTALLATIONS AND
REGISTRATIONS AND RELATED SYSTEMS AND COMPUTER PROGRAM PRODUCTS,
which was filed on Sep. 29, 2005, the disclosures of which is
hereby incorporated herein in its entirety by reference.
FIELD OF THE INVENTION
[0002] The present invention relates to the field of computer
software, and more particularly, to methods of installing software
and related systems and computer program products.
BACKGROUND
[0003] Computers perform specific tasks by following a set of
instructions commonly known as "software". A piece of software can
be distributed to end-users by storing the software on removable
storage media such as floppy diskettes or compact disks, and making
the storage media available to the users. Typically, the storage
medium includes the software to be installed and an installer. The
installer is a specialized piece of software designed to assist
users in the installation process. A user starts the installation
process by inserting the storage medium in a storage medium reader
(e.g., floppy drive, CD-ROM drive, etc.) of a computer, and then
invoking the installer. In some operating systems, the installer is
automatically invoked as soon as the storage medium is inserted in
the reader. The installer asks the user a series of questions
regarding her preferences as to file storage locations, the amount
of files to install, default settings, etc. Thereafter, the
installer proceeds to copy the software from the storage medium to
the computer's mass storage device (e.g., hard disk drive), and
performs any necessary configuration changes in accordance with the
user's preferences.
[0004] Software can also be distributed by making the software
available for download over a network. In that case, the software
is stored on a server coupled to the network. A user who wishes to
obtain the software couples a computer onto the network, and
downloads the software from the server to the computer. The
convenience of being able to obtain software at any time and the
widespread availability of public networks such as the Internet
contribute to the popularity of downloadable software.
[0005] Downloading software over a network is not without problems.
On the Internet, for example, a software vendor has to somehow
alert potential users that a particular piece of software is
available for download. Considering the cost of advertising and the
number of competing software products available on the Internet, an
effective technique for informing potential users of the existence
of the downloadable software, and convincing them to download the
software, may be desirable. In addition, it may be desirable to
track sources of downloads to determine relative effectiveness of
different advertising channels.
[0006] For example, a registration form may be generated when the
software is downloaded and/or installed on the user's computer, and
the registration form may request information from the user. More
particularly, the registration form may request entry of a
referring source (e.g., an advertisement or other source) through
which the user became aware of the software, and the information
provided through the registration form may be returned to the
server that provided the download. The use of registration forms
and/or other prompts for user entry of information, however, relies
on accurate user entry of the requested information. Many users,
however, do not take time to complete registration forms and/or do
not complete registration forms accurately.
[0007] Software downloads over a computer network are discussed,
for example, in U.S. Patent Publication No. 2004/0083474 to
McKinlay et al.; in U.S. Patent Publication No. 2003/0145316 to
McKinlay et al.; and in U.S. Patent Publication No. 2003/0227477 to
Kadiwala. The disclosures of each of the above referenced patent
publications are hereby incorporated herein in their entireties by
reference.
SUMMARY
[0008] According to some embodiments of the present invention,
methods of tracking remote software installations at a central
server may include receiving an installation message over a network
from a user device wherein the installation message indicates an
installation of the software at the user device. After receiving
the installation message from the user device, an installation code
may be created responsive to receiving the installation message,
and the installation code may uniquely identify installation of the
software at the user device. The installation code may be
transmitted over the network to the user device, and the
installation code may be stored at the central server.
[0009] In addition, receiving registration information and the
installation code may be received over the network from the user
device after storing the installation code, and a user name for the
user device may be stored at the central server. More particularly,
the registration information received from the user device may
include the user name. Moreover, a first timestamp may be stored at
the central server wherein the first timestamp represents a time of
installation of the software at the user device, and a second
timestamp may be stored at the central server wherein the second
timestamp represents a time of registration of the software at the
user device.
[0010] A delay between installation and registration of the
software at the user device may thus be calculated using the first
and second timestamps. In addition, an acquisition code may be
stored at the central server with the installation code wherein the
acquisition code identifies a source of the software at the user
device, and the source of the software at the user device may be
associated with the delay between installation and registration of
the software at the user device using the acquisition code. More
particularly, the installation message may include the acquisition
code.
[0011] After storing the user name for the user device, a request
may be received over the network from the user device to print at
least one digital image, and/or sharing of files from the user
device over the network may be coordinated. The installation
message may include an acquisition code defining a source of the
software, and the acquisition code may be stored with the
installation code. The installation message may also include an
affiliate code defining pricing for services provided by the
central server for the user device, and the affiliate code may be
stored with the installation code. In addition, a file including
the software may be transmitted over the network to the user device
before receiving the installation message.
[0012] According to some additional embodiments of the present
invention, methods of installing software at a user device may
include receiving the software at the user device, and storing the
software at the user device. An installation message may be
transmitted over a network to a central server wherein the
installation message indicates installation of the software at the
user device. After transmitting the installation message, an
installation code may be received from the central server over the
network wherein the installation code uniquely identifies
installation of the software at the user device, and the
installation code may be stored at the user device.
[0013] After storing the installation code in memory at the user
device, user input of registration information may be accepted at
the user device, and the registration information and the
installation code may be transmitted over the network to the
central server. Moreover, the registration information may include
a user name for services provided by the central server using the
software at the user device.
[0014] Digital image files may be organized at the user device
using the software before or after transmitting the registration
information. After transmitting the registration information, at
least one of the digital image files may be shared over the network
using the software, and/or a request may be transmitted over the
network to print at least one of the digital image files using the
software.
[0015] Receiving the software may also include receiving an
acquisition code defining a source of the software, and the
installation message may include the acquisition code. Receiving
the software may further include receiving an affiliate code
defining pricing for services provided by the central server for
the user device using the software, and the installation message
may include the affiliate code. Moreover, receiving the software at
the user device may include receiving the software on a physical
storage medium at the user device and/or receiving the software as
a download over the network.
[0016] According to some more embodiments of the present invention,
methods of providing software over a network may include receiving
a redirected access over the network from a user device at a
central server, and receiving an identification of a network device
and/or electronic advertisement from which the user device was
redirected. A download file including the software and an
acquisition code may be provided wherein the acquisition code
corresponds to the identification of the network device and/or
electronic advertisement from which the user device was redirected.
The download file including the software and the acquisition code
may be transmitted over the network to the user device.
[0017] In addition, a download page may be presented to the user
device over the network, a download button of the download page may
be linked to the download file including the software and the
acquisition code, and a download request from the user device may
be received using the download button of the download page over the
network. Accordingly, transmitting the download file may include
transmitting the download file responsive to receiving the download
request.
[0018] Providing the download file may include selecting the
download file including the acquisition code and the software from
a plurality of download files including the software and respective
different acquisition codes. In an alternative embodiment,
providing the download file may include creating the download file
including the acquisition code and the software responsive to
receiving the identification of the network device and/or
electronic advertisement from which the user device was
redirected.
[0019] Moreover, receiving the identification of the network device
and/or electronic advertisement may include extracting the
identification of the network device and/or electronic
advertisement from a uniform resource locater (URL) for the
redirected access. The software may support editing and/or
organizing digital image files at the user device, and/or the
software may support sharing of digital image files at the user
device over the network.
[0020] After transmitting the download file, an installation
message may be received over the network from the user device, and
the installation message may indicate installation of the software
at the user device. After receiving the installation message from
the user device, an installation code may be created that uniquely
identifies installation of the software at the user device. The
installation code may then be transmitted to the user device, and
the installation code may be stored at the central server. After
storing the installation code, registration information and the
installation code may be received over the network from the user
device, and a user name for the user device may be stored at the
central server. After storing the user name, sharing of files at
the user device over the network may be coordinated and/or a
request may be received from the user device to print at least one
digital image from the user device.
[0021] According to still more embodiments of the present
invention, computer program products may be provided for tracking
remote software installations at a central server, and the computer
program products may include a computer readable medium having
computer readable program code embodied therein. More particularly,
the computer readable program code may include computer readable
program code configured to receive an installation message over a
network from a user device wherein the installation message
indicates an installation of the software at the user device.
Computer readable program code may also be configured to create an
installation code responsive to receiving the installation message
from the user device, wherein the installation code uniquely
identifies installation of the software at the user device. In
addition, computer readable program code may be configured to
transmit the installation code over the network to the user device
and to store the installation code at the central server.
[0022] According to yet more embodiments of the present invention,
computer program products may be provided for installing software
at a user device, and the computer program products may include a
computer readable medium having computer readable program code
embodied therein. More particularly, the computer readable program
code may include computer readable program code configured to
receive the software at the user device and to store the software
at the user device. Computer readable program code may be
configured to transmit an installation message over a network to a
central server wherein the installation message indicates
installation of the software at the user device. Computer readable
program code may also be configured to receive an installation code
from the central server over the network after transmitting the
installation message, wherein the installation code uniquely
identifies installation of the software at the user device. In
addition, computer readable program code may be configured to store
the installation code at the user device.
[0023] According to additional embodiments of the present
invention, computer program products may provide software over a
network, and the computer program products may include a computer
readable medium having computer readable program code embodied
therein. The computer readable program code may include computer
readable program code configured to receive a redirected access
over the network from a user device at a central server, and to
receive an identification of a network device and/or electronic
advertisement from which the user device was redirected. Computer
readable program code may also be configured to provide a download
file including the software and an acquisition code, wherein the
acquisition code corresponds to the identification of the network
device and/or electronic advertisement from which the user device
was redirected. In addition, computer readable program code may be
configured to transmit the download file including the software and
the acquisition code over the network to the user device.
BRIEF DESCRIPTION OF THE DRAWINGS
[0024] FIG. 1 is a block diagram illustrating network devices
coupled through a network according to embodiments of the present
invention.
[0025] FIGS. 2-7 are flow charts illustrating operations of
software installations, registrations, and downloads according to
embodiments of the present invention.
[0026] FIGS. 8a and 8b are tables illustrating storing of
installation and registration information according to embodiments
of the present invention.
DETAILED DESCRIPTION
[0027] The present invention now will be described more fully
hereinafter with reference to the accompanying drawings, in which
illustrated embodiments of the invention are shown. This invention
may, however, be embodied in many different forms and should not be
construed as limited to the embodiments set forth herein. Rather;
these embodiments are provided so that this disclosure will be
thorough and complete, and will fully convey the scope of the
invention to those skilled in the art. Like numbers refer to like
elements throughout.
[0028] As used herein, the singular forms "a," "an," and "the" are
intended to include the plural forms as well, unless expressly
stated otherwise. It will be further understood that the terms
"includes," "comprises," "including," 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. It will be understood that when an element is
referred to as being "connected" or "coupled" to another element,
it can be directly connected or coupled to the other element or
intervening elements may be present. Furthermore, "connected" or
"coupled" as used herein may include wirelessly connected or
coupled. As used herein, the term "and/or" includes any and all
combinations of one or more of the associated listed items.
[0029] It will also be understood that, although the terms first,
second, etc. may be used herein to describe various elements, these
elements should not be limited by these terms. These terms are only
used to distinguish one element from another. For example, a first
multimedia device could be termed a second multimedia device, and,
similarly, a second multimedia device could be termed a first
multimedia device without departing from the teachings of the
disclosure.
[0030] The present invention may be embodied as systems, methods,
and/or computer program products. Accordingly, the present
invention may be embodied in hardware and/or in software (including
firmware, resident software, micro-code, etc.). Furthermore, the
present invention may take the form of a computer program product
on a computer-usable or computer-readable storage medium having
computer-usable or computer-readable program code embodied in the
medium for use by or in connection with an instruction execution
system. In the context of this document, a computer-usable or
computer-readable medium may be any medium that can contain, store,
communicate, propagate, or transport the program for use by or in
connection with the instruction execution system, apparatus, or
device.
[0031] The computer-usable or computer-readable medium may be, for
example but not limited to, an electronic, magnetic, optical,
electromagnetic, infrared, or semiconductor system, apparatus,
device, or propagation medium. More specific examples (a
non-exhaustive list) of the computer-readable medium would include
the following: an electrical connection having one or more wires, a
portable computer diskette, a random access memory (RAM), a
read-only memory (ROM), an erasable programmable read-only memory
(EPROM or Flash memory), an optical fiber, and a portable compact
disc read-only memory (CD-ROM). Note that the computer-usable or
computer-readable medium could even be paper or another suitable
medium upon which the program is printed, as the program can be
electronically captured, via, for instance, optical scanning of the
paper or other medium, then compiled, interpreted, or otherwise
processed in a suitable manner, if necessary, and then stored in a
computer memory.
[0032] The present invention is described herein with reference to
flowchart and/or block diagram illustrations of methods, systems,
and devices in accordance, with exemplary embodiments of the
invention. It will be understood that each block of the flowchart
and/or block diagram illustrations, and combinations of blocks in
the flowchart and/or block diagram illustrations, may be
implemented by computer program instructions and/or hardware
operations. These computer program instructions may be provided to
a processor of a general purpose computer, a 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 specified in
the flowchart and/or block diagram block or blocks.
[0033] These computer program instructions may also be stored in a
computer usable or computer-readable memory that may direct a
computing device (such as a computer or other programmable data
processing apparatus) to function in a particular manner, such that
the instructions stored in the computer usable or computer-readable
memory produce an article of manufacture including instructions
that implement the function specified in the flowchart and/or block
diagram block or blocks.
[0034] The computer program instructions may also be loaded onto a
Computer or other programmable data processing apparatus to cause a
series of operational steps to be performed on the computer or
other programmable apparatus to produce a computer implemented
process such that the instructions that execute on the computer or
other programmable apparatus provide steps for implementing the
functions specified in the flowchart and/or block diagram block or
blocks.
[0035] 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
invention 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 the relevant art and will not be
interpreted in an idealized or overly formal sense unless expressly
so defined herein.
[0036] According to embodiments of the present invention,
peer-to-peer file sharing may be provided between user devices
101a-d (such as personal computers, laptop computers, hand-held
computers, personal digital assistants, etc.) over a network 103
(such as the Internet). More particularly, application software
115a-b may be provided at peer user devices 101a-b allowing the
peer user devices 101a-b to share files with other peer user
devices 101a-b and non-peer user devices 101c-d including
respective network browsers 113a-d. Moreover, file sharing between
user devices 101a-d may be coordinated by a central server 105, and
a database(s) 107 coupled to the central server may be used to
track information relating to the peer user devices 101a-b
including the peer-to-peer file sharing application software
115a-b.
[0037] As shown in FIG. 1, each of the user devices 101a-d includes
a respective processor 112 (112a-d) that communicates with a memory
111 (111a-d) and a user interface 114 (114a-d). The user interface
114 may include a keyboard or keypad, a display, a speaker, a
microphone, a joy stick, a mouse, and/or other input/output
device(s). Moreover, an input/output (I/O) data port may be
included in the processor 112 to provide transfer of information
between the user device 101 and the network 103 and/or another user
device. These components may be conventional components, such as
those used in conventional data processing systems, which may be
configured to operate as described herein.
[0038] Moreover, the processor 112 may communicate with the memory
111 via an address/data bus. The processor 112 can be any
commercially available or custom processor, such as a
microprocessor. The memory 111 is representative of the overall
hierarchy of memory devices including the software and data used to
implement the functionality of the user device 101. The memory 111
may include, but is not limited to, the following types of memory
devices: disk, cache, ROM, PROM, EPROM, EEPROM, flash memory, SRAM,
and/or DRAM.
[0039] The memory 111 may include several categories of software
and data used in the user device 101: an operating system,
application programs, input/output (I/O) device drivers, and data.
As will be understood by those of skill in the art, the operating
system may be any operating system suitable for use with a data
processing system, such as AIX, or System 390 from International
Business Machines Corporation; Windows 95, Windows 98, Windows
2000, or Windows XP from Microsoft Corporation; Mac OS X from Apple
Computer, Inc.; Unix; or Linux. I/O device drivers typically
include software routines accessed through the operating system by
application programs to communicate with devices such as I/O data
ports and/or memory components. Application programs, for example,
may include a browser 113 used to access information over the
network 103 and/or application software 115 used to organize
digital image files, edit digital image files, share digital image
files over the network 103, and/or request prints of digital images
from the central server 105. In addition, a data portion of the
memory 111 may include static and dynamic data used by application
programs, the operating system, I/O device drivers, and other
software programs that may reside in the memory 111.
[0040] As shown in FIG. 1, application software 115a-b (used to
organize digital image files, edit digital image files, share
digital image files over the network 103, and/or request prints of
digital images from the central server 105) may be installed in
memories 111a-b of user devices 101a-b. The application software
115, however, may not be initially installed at user devices
101c-d. Embodiments of the present invention will now be discussed
with respect to the installation of the applications software 115
at the user device 101c. While embodiments of the present invention
are discussed by way of example with respect to application
software used for digital image files; downloads, installations,
and/or registrations may be implemented using other types of
application software according to other embodiments of the present
invention.
[0041] According to some embodiments of the present invention, the
application software 115a-b may be used to share digital images
with other user devices. An album of digital images, for example,
may be stored in memory 111a of user device 101a including the
application software 115a, and other user devices 101b-d may access
the album of digital images using the respective browser 113b-d
under coordination of the central server 105 and the application
software 115a. Methods and systems of sharing images over a network
are discussed for example, in U.S. Patent Publication No.
2004/0139172 entitled Method And System For Requesting Image Prints
In An Online Photosharing System; U.S. Patent Publication No.
2004/0111415 entitled Automatic Organization Of Images Uploaded To
A Photo-Sharing Site; U.S. Patent Publication No. 2003/0200268
entitled Method And System For Sharing Digital Images Over A
Network U.S. Patent Publication No. 2003/0161499 entitled Automated
Discovery, Assignment, And Submission Of Image Metadata To A
Network-Based Photosharing Service; U.S. Patent Publication No.
2003/0126212 entitled Specking, Assigning, And Maintaining User
Defined Metadata In A Network-Based Photosharing, U.S. Patent
Publication No. 2003/0063771 entitled Network-Based Photosharing
Architecture For Searching And Delivery Of Private Images And
Metadata, and U.S. Patent Publication No. 2003/0063770 entitled
Network-Based Photosharing Architecture. The disclosures of each of
the above referenced patent publications are hereby incorporated
herein in their entireties by reference.
[0042] Accordingly, the application software 115a-b may be provided
to and installed at each user device 101a-b from which files are to
be shared. The application software 115a-b may be provided together
with an installer at each user device 101a-b, for example, using an
optical or magnetic disk, or using a download from the central
server 105 over the network 103. Once the application software
115a-b and the installer are provided at each user device 101a-b,
the installer can be used to install the application software
115a-b in memory at each user device 101a-b.
[0043] Moreover, use of the application software at a user device
may be registered with the central server 105 to allow file sharing
and/or other services (such as photo-printing) provided by the
central server 105. In addition, information from application
software registrations may be saved in database 107. For example,
the user device 101a may install the application software 115a, and
the application software 115a may be used at the user device 101a,
for example, to edit and/or organize files (such as digital image
files) without registering with the central server 105. Additional
functionality and/or services (such as file sharing and/or
photo-printing) may be provided using the application software 115a
after registering with the central server 105.
[0044] The application software and/or services offered in
connection with the central server 105 may be advertised and/or
marketed through different channels to encourage downloading and/or
use thereof. There may thus be a desire to separately track an
effectiveness of the different advertising and/or marketing
channels. For example, the registration process may request that
the user enter the source through which the user became aware of
the software. The reliability of information entered by user,
however, is dependent on accuracy of the user input, so that user
registrations may not provide accurate information regarding the
effectiveness of different advertising and/or marketing
sources.
[0045] A user of user device 101c may become aware of the
application software 115 through an on-line advertisement provided
on an independent website 109a or 109b, and/or through an
advertisement provided when sharing files provided by user device
101a and/or 101b using the application software 115a and/or 115b. A
button in such an on-line advertisement may redirect the browser
113c to the central server 105 to facilitate downloading the
application software and installer. In an alternative embodiment,
the application software and installer may be provided at the user
device 101c on an optical and/or magnetic disk. According to
embodiments of the present invention, the application software and
the installer may be provided together with an acquisition code
that identifies a source of the software, and an installation code
may be assigned by the central server 105 to the user device 101c
when installing the application software. For example, a first
acquisition code may be provided with application software
distributed via download responsive to a redirection from an
on-line advertisement at independent website 109a; a second
acquisition code may be provided with application software
distributed via download responsive to a redirection from an
on-line advertisement at independent website 109b; a third
acquisition code may be provided with application software
distributed via download responsive to a redirection from the peer
user device 101a; a fourth acquisition code may be provided with
application software distributed via download responsive to a
redirection from the peer user device 101b; a fifth acquisition
code may be provided with application software distributed via an
optical and/or magnetic disk from a first provider; and a sixth
acquisition code may be provided with application software
distributed via an optical and/or magnetic disk from a second
provider.
[0046] In addition to the acquisition code, an affiliate code may
also be provided with the application software and the installer,
and different affiliate codes may identify different pricing
structures for services provided by the central server 105. An
affiliate code, for example, may define pricing for a particular
user device, may define which advertisements (such as banner
advertisements) are provided at the user device home page for the
application software, and/or discounts that may be available for
the particular user. In other alternatives, separate acquisition
and affiliate codes may not be required.
[0047] While the central server 105 and the database 107 are shown
as separate entities, the two elements and/or components thereof
may be implemented together. Moreover, functionalities of the
central server 105 may be provided at one location or provided
using two or more separate components. In addition, the database
107 may be considered as a component of the central server 105.
[0048] Operations of providing, installing, and registering the
application software at the user device 101c will now be discussed
with respect to the flow charts of FIGS. 2-7. According to first
embodiments of the present invention, operations of the user device
101c are illustrated in FIG. 2 (at blocks 201-209) and operations
of the central server 105 are illustrated in FIG. 3 (at blocks
301-309) while installing the application software at the user
device 101c. At block 201, the application software and an
installer may be provided at the user device 101c. As discussed
above, the application software and the installer may be provided
as a download from the central server 105 over the network 103 or
with an optical or magnetic disk or other physical medium. In
addition, an acquisition code and/or an affiliate code may be
provided with the application software and the installer. As
discussed above, an acquisition code is a code used to identify a
source of the software, and an affiliate code is a code used to
identify a pricing structure to be applied when using the
software.
[0049] At block 203, the installer may be executed to store the
application software in the memory 111c of the user device 101c. At
block 205 of FIG. 2, an installation message may be transmitted by
the user device 101c over the network 103, and the installation
message may be received by the central server 105 at block 301 of
FIG. 3. While block 205 is shown after block 203, the operations of
storing the application software and transmitting the installation
message may be performed concurrently or the order may be reversed.
In addition, the installation message may include the acquisition
code and/or the affiliate code that were provided with the
application software. The installation message is used to notify
the central server 105 of installation of the software application
at the user device 101c. In other words, the installation message
provides indication to the central server 105 that the application
software is installed at the user device 101c.
[0050] At block 303 of FIG. 3, the central server 105 creates an
installation code responsive to receiving the installation message
from the user device 101c, and the installation code uniquely
identifies installation of the application software at the user
device 101c. In other words, a different installation code may be
generated by the central server 105 for each installation message
received at the central server 105 so that a different installation
code is created each time an installation message for the
application software is received. The central server 105 may then
store the installation code with information from the installation
message in the database 107 at block 305.
[0051] More particularly, the database 107 may be used to store a
table of information relating to installations and registrations of
the application software at different user devices 101. An example
of a table of installation/registration information for the
application software is shown in FIG. 8a. Each row in the table of
FIG. 8a includes information for the installation/registration of
the application software at a particular user device, and a new row
may be added each time a new installation message is received at
the central server 107. Accordingly, the acquisition code (labeled
ACQc) and the affiliate code (labeled AFFc) received with the
installation message at block 301 and the installation code
(labeled INSTc) created at block 303 may be stored in the
respective columns of the table of FIG. 8a in a same row at block
305. In addition, an installation timestamp (labeled ITSc) may be
stored with the installation code to reflect a time that the
application software is installed at the user device 101c. For
example, the timestamp may indicate a time that the installation
message is received at the central server 105 at block 301, a time
that the installation message is transmitted by the user device
101c, a time that the installation is initiated, a time that the
installation code is created, etc.
[0052] As shown in FIG. 8a, a new row may be generated in the table
of FIG. 8a responsive to receiving the installation message from
the user device 101c. Moreover, the table may already be populated
with information relating to the prior installation of the
application software at other user devices. As discussed above,
each installation code (INSTa, INSTb, INSTc) in FIG. 8a will be
unique for each installation of the application software. Affiliate
codes (AFFa, AFFb, and/or AFFc) and acquisition codes (ACQa, ACQb,
and/or ACQc) from different installation messages, however, may be
the same or different. For example, different installation messages
may have the same acquisition code and different affiliate codes
indicating that the software was obtained from the same source but
with different pricing structures. Moreover, different installation
messages may have different acquisition codes and the same
affiliate code indicating that the software was obtained from
different sources but with the same pricing structures.
[0053] When the installation code INSTc is initially stored in the
table of FIG. 8a for the user device 101c at block 305, the fields
for the registration user name and registration timestamp may
remain blank for the user device 101c as shown in FIG. 8a.
Moreover, the fields for the registration user name and
registration timestamp may remain blank for the user device 101c
until the application software at the user device 101c is
registered with the central server 105. In the example of FIG. 8a,
the row of information including AFFa, ACQa, INSTa, ITSa, RUNa, and
RTSa may represent installation and registration information for
the application software that has been both installed at user
device 101a and registered with the central server 105. Moreover,
the row of information including AFFb, ACQb, INSTb, and ITSb may
represent installation information for the application software
that has been installed at user device 101b but not yet registered
with the central server 105.
[0054] At block 307, the installation code INSTc may be transmitted
back to the user device 101t, and the installation code INSTc may
be received at the user device 101c at block 207. The installation
code INSTc may then be stored at the user device 101c at block 209
for use when the application software at the user device 101c is
registered with the central server 105. While transmitting the
installation code at block 307 is shown after storing the
installation code at block 305, it will be understood that the
order of the these operations may be reversed, or the operations
may be performed simultaneously.
[0055] According to second embodiments of the present invention,
operations of the user device 101c are illustrated in FIG. 4 (at
blocks 401-411) and operations of the central server 105 are
illustrated in FIG. 5 (at blocks 501-509) while registering use of
the application software at the user device 101c with the central
server 105. As discussed above with respect to FIGS. 2 and 3, the
application software may be installed at the user device 101c
without registering installation with the central server. Without
registration with the central server, for example, the user device
101c may use the application software to edit and/or organize files
(such as digital image files). By registering the application
software with the central server 105, files from the user device
101c may be shared with other user devices and/or processing (such
as photo-processing) and/or other services may be provided by the
central server 105.
[0056] At block 401 of FIG. 4, registration may be initiated at the
user device 101c. The application software, for example, may prompt
the user to initiate registration each time the application
software is used at the user device 101c until registration occurs.
In addition or in an alternative, the application software may
prompt the user to initiate registration as a part of installation.
In yet another alternative, the user may initiate registration of
the application software without prompting.
[0057] At block 403 of FIG. 4, the user device 101c may accept
input of registration information from the user. Once registration
has been initiated, a form may be displayed prompting for user
input of the registration information. Registration information,
for example, may include a user name and password selected by the
user that will be used when obtaining service from central server
105.
[0058] At block 405, the registration information and the
installation code INSTc may be transmitted from the user device
101c to the central server 105, and the registration information
and the installation code INSTc may be received by the central
server 105 at block 501 of FIG. 5. The registration information may
be processed, and if the registration is successful at block 503,
the registration information may be stored at block 509. If the
registration is not successful at block 503, the central server 105
may transmit a request for corrected registration information at
block 505.
[0059] At block 503, for example, the central server 105 may check
if the user selected user name is unique (i.e., the user name has
not already been assigned to another user). If the user has not
selected a unique user name and/or if the selected user name does
not conform to a prescribed format (e.g., it is too long or too
short), the central server 105 may transmit a request for another
user name at block 505. In addition or in an alternative
embodiment, the user may be required to enter the same password
twice, and if the password is not correctly entered two times or if
the password does not conform to a prescribed format, the central
server 105 may transmit a request to reenter the password at block
505. Moreover, the user may be required to enter a credit/debit
card number, and if the credit/debit card number is not approved,
the central server may transmit a request to enter a new
credit/debit card number. In addition, the central server 105 may
transmit a request for corrected information at block 505 if
required registration information is not provided.
[0060] If a request for corrected information is received at block
407, the user of user device 101c may be prompted to input
corrected information, and the corrected information may be
accepted at block 409. The corrected information may then be
transmitted from the user device 101c at block 411 and received by
the central server 105 at block 507. Once the correct registration
information has been received at the central server 105 and the
registration is successful at block 503, the registration
information may be stored at block 509. In addition, a confirmation
of registration may be transmitted from the central server 105 to
the user device 101c indicating successful completion of the
registration process and/or acceptance of the registration
information provided from the user device 101c.
[0061] More particularly, the installation code INSTc received with
the registration information at block 501 may be used to match the
registration information with the installation information
previously entered in the table of FIG. 8a and discussed above with
respect to FIGS. 2 and 3. As shown in the table of FIG. 8b, the
central server 105 may complete the row of information for the
installation and registration of the application software at the
user device 101c in the database 107.
[0062] While the tables of FIGS. 8a and 8b show an arrangement of
information in rows and columns for ease of illustration, it will
be understood that the information may be stored in the database
107 in any format that may be convenient. The database 107, for
example, may be a relational database and each row of information
may represent a record for a respective user device. Moreover, each
record may have a unique installation code (i.e., no two records
for the same application software have the same installation code)
so that the installation code may be used to match registration
information with an existing record including installation
information for the same user device.
[0063] As discussed above, at block 403, the user device 101c may
accept entry of a user selected user name RUNc (also referred to as
a Registration User name), the user selected user name RUNc may be
transmitted from the user device 101c at block 405 with the
installation code INSTc, and the user selected user name RUNc may
be received with the installation code INSTc at block 501. The
central server 105 may then use the installation code INSTc to
locate the installation information (for example, including AFFc,
ACQc, and INSTc previously saved in the table of FIG. 8a)
associated with the prior installation of the application software
at the user device 101c.
[0064] As shown in FIG. 8b, the table of FIG. 8a may be updated to
include the user selected user name RUNc for the user device 101c
and the registration time stamp RTSc indicating a time of
registering the application software at the user device 101c. The
registration time stamp RTSc, for example, may reflect a time that
the registration information from the user device 101c is received
at the central server 105 at block 501, a time that the
registration information is transmitted by the user device 101c, a
time that the registration is initiated, a time that the
registration information is stored, etc.
[0065] In other embodiments of the present invention, a user name
and/or password may be assigned by the central server 105
responsive to registration information received from the user
device 101c. Accordingly, successful registration at the central
server 105 may be followed by transmission of the user name and/or
password to the user device 101c, and the user device 101c may
store the user name and/or password received from the central
server 105.
[0066] Once the application software has been installed at user
device 101c and registered with the central server 105, the central
server 105 can access the acquisition code ACQc identifying a
source of the application software for the user device 101c, the
installation timestamp ITSc identifying a time the application
software was installed at the user device 101c, and the
registration timestamp RTSc identifying a time the application
software for the user device 101c was registered with the central
server 105. Accordingly, the central server 105 can determine a
delay between installation and registration at the user device 101c
(i.e., the delay between ITSc and RTSc), and the delay can be
correlated with the source of the software as identified by the
acquisition code. Moreover, the installation and registration
information for a plurality of user devices can be analyzed to
determine which advertising and/or marketing sources are most
effective in terms of resulting numbers of downloads, and/or which
advertising and/or marketing sources result in the longest and/or
shortest delays between installation and registration. This
information can thus be used to dynamically track marketing
experiments and/or results. Moreover, information relating to
installations can be tracked separately and/or independently from
information relating to registrations. For example, a number of
installations and a number of registrations resulting from a
particular advertising and/or marketing source may be
determined.
[0067] According to some embodiments of the present invention, the
user device 101c may be registered with the central server 105
before installing the application software. More particularly, the
user device 101c may be registered with the central server 105 to
allow purchasing of prints of files shared by user devices 101a
and/or 101b. As discussed above, the user device 101c can access
files shared by other user devices using browser 113c without
installing the application software. Accordingly, the previously
assigned user name and password for the user device 101c can be
obtained by the central server 105 when the user device 101c
registers the Application software as discussed above with respect
to FIGS. 4 and 5, and the previously assigned user name and
password may be stored with the registration information at block
509.
[0068] According to some additional embodiments of the present
invention, the application software may be installed at the user
device 101c without receiving an installation code. For example,
tracking operations of the central server 105 may be implemented
after installing the application software at the user device 101c
but before registering the application software at the user device
101c. During the registration process of FIGS. 4 and 5, an
installation code may not be provided and information relating to
the previous installation of the software at user device 101c may
not be available at the central server 105. Accordingly, a new row
of information for the user device 101c may be generated by the
central server 105 during registration. Moreover, both the
installation timestamp INTSc and the registration timestamp RTSb
may be set to indicate the time of registration, and the
acquisition code ACQc may be set to "OLD" to indicate that the
software was installed at user device 101c before tracking for
installation timestamps was recorded.
[0069] According to some other embodiments of the present
invention, the user device 101c may have installed an old version
of the application software, and an upgrade of the application
software may be requested. In this case, installation information
for the user device 101c may not have been previously saved in the
table of FIG. 8b so that a new row of information for the user
device 101c may be created by the central server 105 when the
application software upgrade is requested. In this case, a new
installation code may be created at the time of the upgrade; the
affiliate code may be obtained from the user device 101c and the
acquisition code ACQc may be set to "UPGRADE" to indicate that the
software was installed at user device 101c before tracking for
installation timestamps was recorded; and the installation
timestamp ITSc may be stored to reflect the time of the
upgrade.
[0070] As discussed above with respect to block 201 of FIG. 2, the
application software and installer may be provided at the user
device 101c on an optical and/or magnetic disk and/or other
physical medium. Moreover, appropriate affiliate and/or acquisition
codes may be provided with the application software and installer
on the physical medium. Accordingly, application software
distributed on a physical medium by a first retailer may be
provided with a first acquisition code identifying the first
retailer, and application software distributed on a physical medium
by a second retailer may be provided with a second acquisition code
identifying the second retailer. Affiliate codes for application
software distributed on a physical medium by a same retailer may
change to reflect changes in pricing over time, to reflect
different pricing for different purchases, to reflect temporary
discounts, etc. Application software for digital image editing,
organization, file sharing, and/or photo-processing, for example,
may be provided on an optical disk with the purchase of a digital
camera.
[0071] In an alternative embodiment, the application software and
installer may be provided at the user device 101c by a download
from the central server 105 over the network 103 (such as the
Internet). More particularly, the user device 101c may be
redirected from an electronic advertisement for the application
software provided on-line over the network 103 to the central
server 105 to initiate the download. In this case, the central
server may need to provide the appropriate acquisition code with
the application software and installer during the download.
Operations of downloading application software according to
embodiments of the present invention will be discussed with
reference to FIGS. 6 and 7.
[0072] At block 601 of FIG. 6, the user device 101c may access data
over the network 103 from another network device such as website
109a, website 109b, user device 101a, and/or user device 101b. The
user device 101c may access a webpage from website 109a using
browser 113c, and an electronic banner advertisement for the
application may be provided by the website 109a. In an alternative,
the user device 101c may use browser 113c to access digital images
made available at user device 101a via application software 115a
and/or central server 105. While accessing the digital images from
user device 101a, the application software 115a and/or central
server 105 may present an electronic advertisement for the
application software to the user device 101c. In either case, the
electronic advertisement may provide a graphical-user-interface
(GUI) button at the user device 101c to select a download of the
application software to the user device 101c.
[0073] At block 603, a download of the application software may be
selected using the GUI button presented by the electronic
advertisement at the user device 101c. In response to selecting
download of the application software, the user device 101c may be
redirected to the central server 105 at block 605, and the
redirected access from the user device 101c may be received by the
central server at block 701. At block 607, the user device 101c may
transmit an identification of the network device and/or electronic
advertisement from which the user device 101c is being redirected,
and the identification of the network device and/or electronic
advertisement may be received by the central server at block 703.
While operations of blocks 605 and 607 are shown separately,
operations of blocks 605 and 607 may be performed at the same time
or the order may be reversed. Similarly, operations of blocks 701
and 703 may be performed at the same time or the order may be
reversed.
[0074] If the user device 101c is redirected from access to user
device 101a, an identification of the user device 101a may be
received by the central server 105 at block 703. If the user device
101c is redirected from an electronic advertisement at website
109a, an identification of the website 109a and/or the electronic
advertisement may be received by the central server 105 at block
703. The central server 105 may thus be able to determine the
source of a request for a download without requiring user
identification of the source. For example, when the user device
101c is redirected from another network device to the central
server 105, a portion of the URL (Uniform Resource Locator) may
include an identification of the network device from which the user
device 101c has been redirected as a passed-in parameter and/or a
referrer link.
[0075] At block 705, the central server 105 may present a download
page for the user device 101c, and the user device may access the
download page from the central server 105 at block 609. The central
server 105 may then determine if an application software file
including an appropriate acquisition code is available for the
network device and/or electronic advertisement identified as the
source of the redirection. If a pre-built application software file
including the appropriate acquisition code is available at block
707, the central server may link the available pre-built
application software file to a download button of the download page
presented for the user device at block 711. If a pre-built
application software file including the appropriate acquisition
code is not available at block 707, the central server 105 may
build an application software file including the appropriate
acquisition code on the fly at block 709, and the central server
may link the built application software file to a GUI download
button of the download page presented for the user device 711. Each
application software file may thus include the application
software, the installer, and an acquisition code corresponding to
the identification received at block 703.
[0076] More particularly, the central server 105 may have access to
a library of pre-built application software files including the
same application software and the same installer, but including
different acquisition codes corresponding to different
identifications of network devices and/or electronic
advertisements. Accordingly, the central server 105 may check the
library of pre-built application software files at block 707 before
building a new application software file at block 709. Moreover, a
selection of pre-built application software files for the library
may be determined based on frequency of use. In other words, more
frequently used application software files may be included in the
library, while less frequently used application software files may
not be included in the library. Once a particular application
software file has been downloaded a predetermined number of times
over some period of time, the application software file may be
added to the library. If an application software file in the
library has not been downloaded a sufficient number of times over
some period of time, the application software file may be removed
from the library.
[0077] At block 611, the user device 101c may accept selection of
the GUI download button of the download page from the central
server 105 so that a download request for the application software
file is transmitted from the user device 101c and received by the
central server 105 at block 713. Responsive to receiving the
download request, the central server 105 may download the
application software file at block 715. At block 613, the user
device 101c may receive the downloaded application software file
including the application software, the installer, and the
acquisition code. The application software may then be installed by
the user device 101c at block 615. Operations of installation are
discussed in greater detail above with respect to FIGS. 2 and
3.
[0078] As discussed above, the acquisition code corresponds to the
identification of the network device and/or electronic
advertisement from which the user device was redirected at block
605 to initiate the download. Accordingly, the source of the
download can be identified using the acquisition code during
subsequent installation and/or registration operations as discussed
above with respect to FIGS. 2-5. Moreover, the identification of
the network device and/or electronic advertisement may be
translated by the central server 105 into the appropriate
acquisition code different than the identification. In an
alternative embodiment, the identification of the network device
and/or the electronic advertisement may be the same as the
corresponding acquisition code so that no translation is
required.
[0079] In the drawings and specification, there have been disclosed
exemplary embodiments of the invention. However, many variations
and modifications can be made to these embodiments without
substantially departing from the principles of the present
invention. All such variations and modifications are intended to be
included herein within the scope of the present invention, as set
forth in the following claims. While embodiments of the present
invention have been discussed above with respect to peer-to-peer
file sharing software applications, for example, it will be
understood that providing, tracking, and/or installing software
according to embodiments of the present invention may be provided
for other types of application software.
* * * * *