U.S. patent application number 11/138549 was filed with the patent office on 2005-12-15 for method and system of launching applications from a button of a browser.
Invention is credited to Burke, Eric, Coe, Brian, Kaspar, Mike, Owens, Stephen.
Application Number | 20050278651 11/138549 |
Document ID | / |
Family ID | 34138914 |
Filed Date | 2005-12-15 |
United States Patent
Application |
20050278651 |
Kind Code |
A1 |
Coe, Brian ; et al. |
December 15, 2005 |
Method and system of launching applications from a button of a
browser
Abstract
A system and method of launching an application from a button of
a browser is disclosed, and includes providing one or more buttons,
used with a downloadable toolbar for an Internet browser, which are
configured to launch an external application. The method comprises
associating the application to be launched with an identification
code, pre-configuring the client with the identification code and
information necessary to launch the application, and transmitting a
plurality of button characteristics which define button behavior.
In the case of launching an external application, button
characteristics comprise at least the application identification
code.
Inventors: |
Coe, Brian; (Scotts Valley,
CA) ; Burke, Eric; (Northville, MI) ; Kaspar,
Mike; (Campbell, CA) ; Owens, Stephen;
(Marietta, GA) |
Correspondence
Address: |
GREENBERG TRAURIG, LLP
MET LIFE BUILDING
200 PARK AVENUE
NEW YORK
NY
10166
US
|
Family ID: |
34138914 |
Appl. No.: |
11/138549 |
Filed: |
May 25, 2005 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
11138549 |
May 25, 2005 |
|
|
|
10794435 |
Mar 5, 2004 |
|
|
|
60494691 |
Aug 12, 2003 |
|
|
|
Current U.S.
Class: |
715/779 ;
707/E17.119; 715/775; 715/840 |
Current CPC
Class: |
G06F 16/957 20190101;
G06F 3/0482 20130101; G06F 3/0481 20130101 |
Class at
Publication: |
715/779 ;
715/775; 715/840 |
International
Class: |
G06F 003/00 |
Claims
1. A method of providing a button of a graphical user interface
with the ability to launch an external application, comprising:
associating the external application to be launched with an
identification code; pre-configuring a client side module with the
identification code and information necessary to launch the
external application; and communicating the identification code to
the client side module for association with the button.
2. The method of claim 1 further comprising transmitting a fallback
URL such that if the external application is not installed, the
user is redirected to a site where the application can be
installed.
3. The method of claim 1 further comprising transmitting the latest
available version number of the external application such that the
user is notified if there is a newer version available.
4. The method of claim 1 wherein the information necessary to
launch the external application is a file path.
5. The method of claim 1 wherein the information necessary to
launch the external application is a registry location.
6. The method of claim 1 wherein the information necessary to
launch the external application is pre-configured in a secure
manner.
7. The method of claim 1 wherein the graphical user interface is a
portion of an internet browser.
8. The method of claim 1 wherein the client side module is a
downloadable toolbar.
9. The method of claim 1 wherein the button is part of a
downloadable toolbar.
10. The method of claim 1 wherein the button is implemented using
ActiveX control.
11. The method of claim 1 wherein a plurality of identification
codes are pre-configured into the client side module.
12. The method of claim 1 wherein the client side module is
automatically updated to include the identification code and
information necessary to launch the external application if not
present.
13. A method of launching an application through a button of an
internet browser comprising: receiving button characteristics at a
client side module and associating the button characteristics with
the button, the button characteristics comprising at least an
identification code, the identification code being representative
of the application to be launched; recognizing when the button has
been activated by the user; querying the client side module in
communication with the button for information regarding the
application matching the identification code in response to the
button being activated by the user; querying the client side module
for information regarding the version of the application to compare
with the version number; and calling a function to launch the
application having the associated identification code.
14. The method of claim 13 wherein the client side module is
pre-configured with the identification code.
15. The method of claim 13 wherein the button characteristics are
determined by a content provider.
16. The method of claim 13 wherein the button characteristics are
requested by the user.
17. The method of claim 14 wherein the client side module is
further pre-configured with information necessary to launch the
application.
18. The method of claim 15 wherein the information necessary to
launch the application comprises a file path.
19. The method of claim 1 wherein the information necessary to
launch the external application is a registry location.
20. The method of claim 18 wherein the file path of the application
to be launched is hidden from the user.
21. The method of claim 13 further comprising transmitting a
fallback URL such that if the identification code is not
recognized, the user is redirected to a site where the application
can be installed.
22. The method of claim 13 wherein the client side module is a
downloadable toolbar.
23. The method of claim 13 wherein the button is part of a
downloadable toolbar.
24. The method of claim 13 wherein the button is implemented using
ActiveX control.
25. A user interface comprising a button with the ability to launch
an external application, the button associated with software
executable to perform steps comprising: recognizing an association
of the external application to be launched with an identification
code; utilizing a first software module that is pre-configured with
the identification code and information necessary to launch the
external application; and communicating the identification code to
the first software module for association with the button.
26. The method of claim 25 further comprising receiving a fallback
URL such that if the application is not installed, the user is
redirected to a site where the application can be installed.
27. The method of claim 25 further comprising receiving the latest
available version number of the external application such that the
user is notified if there is a newer version available.
28. The method of claim 25 wherein the information necessary to
launch the external application is a file path.
29. The method of claim 1 wherein the information necessary to
launch the external application is a registry location.
30. The method of claim 25 wherein the information necessary to
launch the external application is pre-configured in a secure
manner.
31. The method of claim 25 wherein the graphical user interface is
a portion of an internet browser.
32. The method of claim 25 wherein the client side module is a
downloadable toolbar.
33. The method of claim 25 wherein the button is part of a
downloadable toolbar.
34. The method of claim 25 wherein the button is implemented using
ActiveX control.
35. The method of claim 25 wherein a plurality of identification
codes are pre-configured into the client side module.
36. The method of claim 25 wherein the client side module is
automatically updated to include the identification code and
information necessary to launch the external application if not
present.
37. A user interface for a browser comprising a button implemented
by software code provided by a provider other than a provider of
the browser, the button having the ability to launch an external
application, the button associated with software executable to
perform steps in a computer, comprising: recognizing an association
of the external application to be launched with an identification
code; utilizing a first software module that is pre-configured with
the identification code and information necessary to launch the
external application; and communicating the identification code to
the first software module for association with the button.
38. The method of claim 37 further comprising receiving a fallback
URL such that if the external application is not installed, the
user is redirected to a site where the application can be
installed.
39. The method of claim 37 further comprising receiving the latest
available version number of the external application such that the
user is notified if there is a newer version available.
40. The method of claim 37 wherein the information necessary to
launch the external application is a registry location.
41. The method of claim 40 wherein the registry location is
pre-configured in a secure manner.
42. The method of claim 37 wherein the button is part of a
downloadable toolbar.
43. The method of claim 37 wherein the button is implemented using
ActiveX control.
44. The method of claim 37 wherein the first software module is
automatically updated to include the identification code and
information necessary to launch the external application if not
present.
45. A server configured to communicate to a client computer an
application, the application operative to execute functions in a
computer, comprising: instantiating in a user interface a button
with the ability to launch an external application, the button
associated with software executable to perform steps comprising:
recognizing an association of the external application to be
launched with an identification code; utilizing a first software
module that is pre-configured with the identification code and
information necessary to launch the external application; and
communicating the identification code to the first software module
for association with the button.
46. The method of claim 45 further comprising receiving a fallback
URL such that if the external application is not installed, the
user is redirected to a site where the application can be
installed.
47. The method of claim 45 further comprising receiving the latest
available version number of the external application such that the
user is notified if there is a newer version available.
48. The method of claim 45 wherein the information necessary to
launch the external application is a registry location.
49. The method of claim 48 wherein the registry location is
pre-configured in a secure manner.
50. The method of claim 45 wherein the button is part of a
downloadable toolbar.
51. The method of claim 45 wherein the button is implemented using
ActiveX control.
52. The method of claim 45 wherein the first software module is
automatically updated to include the identification code and
information necessary to launch the external application if not
present.
53. The method of claim 13 wherein button characteristics further
comprise a digital signature.
54. The method of claim 53 wherein the digital signature is used to
compare with the digital signature of the application to be
launched in order to verify its authenticity.
55. A method of launching an application through a button of an
internet browser comprising: associating an identification code
with the application to be launched; assigning button
characteristics to the button, the button characteristics
comprising the identification code, a fallback URL, and a current
version number; recognizing when the button has been activated by
the user; querying a client side module in communication with the
button for information regarding the location of the application
matching the identification code; comparing the version of the
application with the current version number; redirecting the user
to a site where the application can be updated if the current
version number is greater than the version of the application; and
calling the function to launch the application having the
associated identification code.
56. The method of claim 1 wherein the client side module signs into
an account with a content provider.
57. The method of claim 56 wherein the identification code is
stored at a central location and associated with the account.
58. The method of claim 57 wherein the identification code can be
configured by a user of the account.
59. The method of claim 15 wherein the user has an account with the
content provider, and the button characteristics are associated
with the account.
60. The method of claim 59 wherein the button characteristics are
dependent on the level of the account.
61. The method of claim 59 wherein the button characteristics are
configurable by the user of the account.
Description
RELATED APPLICATIONS
[0001] This application is a Continuation-In-Part of U.S. Utility
patent application Ser. No. 10/794,435, filed Mar. 5, 2004, which
claims the benefit of U.S. Provisional App 60/494,691 filed Aug.
21, 2003, the contents of which are incorporated by reference
herein in their entirety.
BACKGROUND
[0002] 1. Field
[0003] The present disclosure is directed to computer interfaces
and, more particularly, to a method and system of launching an
application through a button of a browser.
[0004] 2. General Background
[0005] When accessing the Internet and the World Wide Web, an
Internet user typically executes, via a computer, a browser
software program such as, for example, Netscape NAVIGATOR or
Microsoft Internet EXPLORER.TM.. The browser program (i.e., a
browser) establishes a link to the Internet (via a modem and an
Internet Service Provider (ISP), for example) and also provides a
textual and graphical user interface (e.g., a user interface
portion of the application window), and included in the application
window, a window portion for displaying Internet content (e.g., a
web page viewing portion) and toolbars in the user interface
portion for interfacing with the browser.
[0006] The toolbars generally allow a user to interface with and/or
control the browser. Toolbars can include textual regions,
graphical regions, or a combination of both textual and graphical
regions. Selecting an item on a toolbar can instruct the browser to
perform a certain function, or such selection may open a menu of
items from which a user can choose a plurality of items. Other
browser toolbars allow a user to enter an Internet address and
instruct the browser to navigate to that address. Some of the
browser functions that can be implemented include, for example,
save, forward, back, stop and refresh.
[0007] Browsers generally have now evolved to include functionality
that allows a user to make certain modifications to the appearance
and/or functionality of, or otherwise customize, the application
window. For example a user can add additional buttons or toolbars
from sources other than the browser provider, hide toolbars, change
the size of the toolbar icons and add additional items to a
toolbar.
SUMMARY
[0008] An embodiment of the present disclosure includes providing
one or more buttons, used with a downloadable toolbar for an
Internet browser, which launch an external application. The method
comprises associating the application to be launched with an
identification code, pre-configuring a client with the
identification code and secure information about how to launch the
application, and transmitting a fallback URL which provides the
ability to download and install the application if the
identification code is not recognized by the toolbar.
[0009] In one aspect, a method of providing a button of a graphical
user interface with the ability to launch an application is
disclosed, comprising associating the external application to be
launched with an identification code, pre-configuring a client side
module in communication with the graphical user interface with the
identification code and information necessary to launch the
external application, and transmitting the identification code to
the client side module for association with the button on the
graphical user interface.
[0010] In another aspect, a method of launching an application
through a button of an internet browser is disclosed, comprising
receiving button characteristics at a client side module and
associating the button characteristics with the button, the button
characteristics comprising at least an identification code, the
identification code being representative of the application to be
launched, recognizing when the button has been activated by the
user, querying the client side module in communication with the
button for information regarding the application matching the
identification code in response to the button being activated by
the user, querying the client side module for information regarding
the version of the application to compare with the version number
and calling a function to launch the application having the
associated identification code.
[0011] In yet another embodiment, executable software in the form
of a downloadable toolbar for an internet browser is provided with
the functionality of launching an application through a button of
the downloadable toolbar.
[0012] Other objects and features of the present disclosure will
become apparent from the following detailed description, considered
in conjunction with the accompanying drawing figures. It is
understood, however, that the drawings are designed solely for the
purpose of illustration and not as a definition of the limits of
the disclosure, for which reference should be made to the appended
claims.
DRAWINGS
[0013] In the drawing figures, which are not to scale, and which
are merely illustrative, and wherein like reference numerals depict
like elements throughout the several views:
[0014] FIG. 1 is a schematic illustrating an exemplary system
implemented according to an embodiment of the present
disclosure;
[0015] FIG. 2 is a flowchart illustrating an exemplary process of
providing a button for launching an application according to one
embodiment of the disclosure;
[0016] FIG. 3 is a flowchart illustrating an exemplary process of
launching an application through a button on a browser according to
an embodiment of the disclosure;
[0017] FIG. 4 is an exemplary screen shot illustrating an exemplary
toolbar according to an embodiment of the disclosure;
[0018] FIGS. 5a and 5b are exemplary screen shots illustrating an
exemplary toolbar according to an embodiment of the disclosure;
[0019] FIG. 6 is an exemplary screen shot illustrating the process
of launching an application through a button on a browser according
to an embodiment of the disclosure;
[0020] FIG. 7 is an exemplary screen shot illustrating the process
of launching an application through a button on a browser according
to an embodiment of the disclosure;
DETAILED DESCRIPTION
[0021] There will now be shown and described in connection with the
attached drawing figures several exemplary embodiments of a system
and method of launching an application from a button on a
browser.
[0022] With reference to FIG. 1, there is shown an exemplary block
diagram of a system 100 implemented in accordance with certain
embodiments of the disclosure. A computer 150 is connected to the
Internet 190. Computer 150 includes an internal bus 164 that
facilitates communication of information (i.e., digital data)
between and among the various devices of the computer 150 and that
also facilitates communication between the computer and external
devices and systems via a communication interface 168. A processor
166 coupled to the bus 164 processes information within the
computer 150. The computer 150 also includes a memory 160 such as,
for example, Random Access Memory (RAM) and/or other equivalent
dynamic memory storage devices, coupled to bus 164 for receiving
and storing instructions communicated from the processor 166.
Memory 160 may also be used to temporarily store variable or other
intermediate information while the processor 166 executes
instructions. Read-Only-Memory (ROM) 162 is also coupled to the bus
.vertline. 64 for storing static data and instructions for use by
the processor 166.
[0023] Various input and output devices are provided as part of
computer 150, including, by way of non-limiting example, a display
154 (e.g., cathode ray tube (CRT), liquid crystal display (LCD),
etc.), an input device 156 such as a keyboard, and a cursor control
device 158 such as a mouse, or trackball. for example. A data
storage device 152 such as, for example, a magnetic disk drive and
magnetic disk, a CD-ROM drive and CDROM, or other equivalent
devices and data storage mediums, is coupled to the bus 164 for
communication with the processor 166, main memory 160, and
communication interface 168. The storage device 152 preferably has
an operating system 170 and an Internet browser software program
172 (i.e., a browser) stored thereon. As will be discussed in
greater detail below, a client-side module 174 may also be stored
on the data storage device 152.
[0024] The computer 150 may communicatively connect to the Internet
190 via the communication interface 168 over one or more
transmission media including, but not limited to, coaxial cable,
copper wires, and fiber optical cables. Communication between the
computer 150 and the Internet 190 may also be via a wireless or
cellular interface. The communication interface 168 facilitates
two-way communication between the computer 150 and another
electronic device or system, e.g., a server computer or computers
126 provided by a content provider 120,130.
[0025] An Internet user (not shown) using the computer 150 may gain
access to the Internet 190 by causing the browser 172 to execute,
thereby opening a communication link between the communication
interface 168 of the computer 150 and an Internet site 126 of
content provider 120, via an Internet Service Provider (ISP) 180.
Internet content is communicated by the content provider 120 to the
computer 150 for display by browser 172. Alternatively, a content
provider 120, 130 may also be an ISP 180.
[0026] In alternative embodiments, computer 150 may be a desktop or
notebook computer, PDA, hand held device, or wireless phone (with
graphics capability), or any other device now known or hereafter
developed that is capable of performing the functions as described
herein.
[0027] In accordance with an embodiment of the disclosure, a first
Internet content provider 120 may provide an Internet user with
access to a program 122 for controlling the browser 172. When
executed by the user, the controlling program 122 downloads or
creates a client-side module 174 such as, for example, a Dynamic
Link Library (DLL), on the data storage device 152 of the Internet
user's computer 150. The client-side module 174 preferably includes
ActiveX control or Plug-in functionality, but is essentially
executable software code. Thereafter, when the Internet user
accesses the Internet using the browser 172, the browser 172 opens
the client-side module 174 and preferably automatically establishes
a connection to the content provider's Internet site 126. The
content provider, in response to the connection established by the
browser 172, loads information and/or functional data into a shell
operating within the browser and created by the client-side module
174. For example, if the user has an account with the content
provider 120, customized information and/or functionality may be
loaded into the client-side module 174. If the user does not have
an account, more generalized (e.g., guest) information and/or
functionality may be loaded. If no connection to the content
provider is available, default information and/or functionality may
be loaded.
[0028] The client-side module 174 essentially opens a shell (or a
plurality of shells) within the browser 172 that contains the
ActiveX control or Plug-in code or other executable software that
may control, i.e., add, remove, and/or modify, the Internet browser
172. When loaded with the ActiveX control or Plug-in, the
client-side module 174 preferably contains functions, objects,
data, and other software, referred to generally herein as
information, that may be used to control the browser 172. The
present disclosure ensures that the client-side module 174 (and
shell) does not close when the Internet user moves, for example,
from Internet site 126 (having a Web page 124) to Internet site 136
(having Web page 134). Thus, the information and/or functionality
provided via the ActiveX control or Plug-in is not lost when the
Internet user disconnects from the Internet site that loaded the
ActiveX control or Plug-in, and connects to another Internet site.
In alternate embodiments client-side module 174 may be located at a
remote location from the Internet user.
[0029] An embodiment of the disclosure may be provided as a feature
of a method of controlling an Internet browser interface
displayable by an Internet browser on a display of a computer, and
enabling a user of the computer and Internet browser to access and
navigate the Internet and to receive and display on the computer
display one or more Web pages from one or more Internet sites,
including the display of a Web page from a predetermined Internet
site, the Internet browser having at least one Internet browser
toolbar having at least one toolbar button providing a
predetermined functionality to the user of the computer and
Internet browser, the method can comprise providing, at the
predetermined Internet site, access to a program for controlling
the Internet browser interface and making available for downloading
by the predetermined Internet site, a file for causing the display
of a persistent user toolbar adjacent to said Internet browser
toolbar so as to create the visual impression that the user toolbar
is an integrated part of the Internet browser, the user toolbar
making additional functionality that is not part of the Internet
browser prior to download available to the user after download as
part of the Internet browser interface, such that once the user
toolbar is displayed the user toolbar remains displayed and said
additional functionality remains available to the user regardless
of a subsequent Internet site to which the Internet browser is
caused to navigate after download. Such a method is described in
further detail in U.S. patent application Ser. No. 09/429,585,
filed Oct. 28, 1999, published Aug. 26, 2004 as Publication No.
2004/0165007, and entitled "A Method Of Controlling An Internet
Browser Interface And A Controllable Browser Interface," the
contents of which are hereby incorporated by reference herein.
[0030] A method of controlling a browser as further described
herein may be implemented using, by way of non-limiting example, a
downloadable toolbar. An Internet user may customize the browser so
that each time the user accesses the Internet using the browser,
user-defined information and/or functionality, e.g., a customizable
button on a toolbar, will be displayed with the browser interface.
The toolbar may also include bookmarks, address and phone books,
personal financial information, personalized news, and/or various
functionality such as is available via ActiveX control and Plug-ins
or other software code. When the toolbar is executed, the
client-side module 174 can receive some, none or all of the toolbar
buttons from a content provider 120. The toolbar buttons and their
characteristics may be obtained through a feed from the content
provider 120 to the client computer 150.
[0031] In addition, if an Internet user has an account with a
content provider 120, that user's specific account information
(e.g., investment portfolio, news headlines, bookmarks, address
book, customized button etc.) may be saved by the content provider
120 and dynamically displayed by different browsers on different
computers. Also, two or more Internet users who share the same
computer, but have different user accounts with a content provider
120 can each load their own account information, e.g., their
personal customizable button or buttons, so that each user's
personal buttons are displayed when that user logs into his or her
respective account. Furthermore, there may be different levels of
accounts offered by the content provider, each with varying levels
of privileges. Therefore, different account types may offer
different buttons depending on the features of privileges
associated with each account. Even further, the content provider
may work with a partner and desire to offer certain selections to
users of that provider. Utilizing an account associated with the
content provider to specify such options allows any level of
customization to be provided.
[0032] FIG. 2 illustrates an exemplary embodiment of a method 200
for providing a button of a graphical user interface to launch an
external application.
[0033] In one embodiment, once it has been determined that an
application is to be launched through the use of a button, the
content provider associates the application with an identification
code as is indicated at step 210. The identification code is
preferably used instead of the file path, application location, or
other information necessary to launch the application, for security
purposes. The identification code may be in any form, however in
one embodiment a relatively short alphanumerical code is used. For
example, in the case of an AntiSpy application, the identification
code could simply be the two letter code "as".
[0034] In one embodiment, the content provider pre-configures the
client side module to recognize the identification code as
indicated at step 220. More particularly, the client side module is
pre-configured with the information necessary to launch the
application which is referenced by using the identification code.
The information to launch the application preferably includes the
application's file path.
[0035] In other embodiments, a more indirect method of identifying
the location of the application to be launched is used. For
example, instead of using the direct file path, another location
that holds the path is hard-coded into the client. Generally, the
information required to launch an application is specific to the
Operating System (OS) running on the computer. For example, in the
case of a Microsoft WINDOWS OS, one or more registry location(s) is
associated with the identification code and pre-configured into the
client side module. The windows registry location(s), in turn,
provides the path to the executable and/or the Windows shell
command used to launch the application. The mapping of
identification code to registry location is preconfigured into the
client binary, to avoid exposing this to a third party watching the
data transmitted from the client side module provider or button or
toolbar provider. Such a use of an indirect method of identifying
the location of the application to be launched allows the
application executable path to change without having to redeploy a
new client side module or toolbar. Instead, the registry settings
can simply be updated. For other operating systems, alternative
means would be used.
[0036] The information to launch the application should preferably
be pre-configured in a secure way, such that the information cannot
be easily viewed or modified. In some embodiments, the content
provider may pre-configure the client with a plurality of
identification codes, perhaps anticipating any number of
applications that may be desired to be launched in the future, by
associating one of the pre-configured identification codes with a
later deployed application.
[0037] In an embodiment of the disclosure, a user would receive,
e.g., download, the client side module 174 from a content provider
120. The content provider 120 connects with a client computer 150.
Content provider 120 may connect with client computers through a
server 126. The server 126 may then provide the client 150 with,
e.g., a web page, including a number of different options such as
creating a new account, signing into an existing account, and
downloading a client side module 174. The content provider is
optionally a different entity than the entity that made available
the browser, or may be the browser provider providing the
functionality described herein at a time after the initial install
of the browser when such functionality was absent.
[0038] Once the client-side module 174 is obtained, installed, and
executed by the client 150, e.g., in response to the user executing
a browser application, in an embodiment of the disclosure, the
client-side module 174 automatically (or otherwise) connects with a
content provider 120. Thus, method 200 proceeds from step 220 to
step 230 where the content provider 120 connects with the client
150. The content provider can be content provider 120, from which
client-side module 174 is downloaded, or alternatively, the content
provider can be another site, e.g., content provider 130.
[0039] At this point, the content provider may transmit information
to the client side module such as user preferences, button
characteristics, etc. For example, specific user preferences may be
stored with the content provider and are loaded initially upon
connection.
[0040] An embodiment of the present disclosure includes providing
one or more buttons, used with a downloadable toolbar for an
Internet browser, which are configured to launch an external
application. The method comprises associating the application to be
launched with an identification code, pre-configuring the client
with the identification code and information necessary to launch
the application, and transmitting a plurality of button
characteristics which define button behavior. The step of
transmitting button characteristics is shown at 240. In the case of
launching an external application, button characteristics comprise
at least the application identification code.
[0041] It is foreseen that the information necessary to launch the
application may not always be available. This may be because the
application to be launched is not installed on the user's computer,
or the information necessary to launch the application is not
present within the client side module. Therefore, in some
embodiments, button characteristics further include a fallback URL
such that the user will be directed to install the application if
it is not already installed. Furthermore, the client side module
may be updated to include the proper application launch information
and identification codes as is indicated at step 250. The terms URL
(uniform resource locator) and URI (uniform resource identifier)
are used interchangeably herein.
[0042] In one embodiment, the current or latest version number of
the application to be launched may further be provided as a button
characteristic. Therefore, when the button to launch an application
is activated by a user, a check is performed to ensure that the
application to be launched is the most recently available version.
This may be done as a simple comparison of the version number
transmitted by the content provider and associated with the button
against the version number of the application installed on the
user's computer. This can be accomplished through use of ActiveX
controls and functions. If it is determined that the version of the
installed application is less than the latest available version,
the fallback URL will be accessed to prompt the user to download
and install the latest version.
[0043] In some cases, it may be desired for the content provider to
require that an application be updated to a new version. Therefore,
in yet another embodiment, a further parameter called "forced
update" is included with the button characteristics transmitted by
the content provider. The forced update parameter can be used to
force the user to update the application to a new version.
[0044] In yet another embodiment, the application to be launched is
digitally signed. In such an embodiment, the client further
verifies the signature of the application to be launched before
launching, to further protect the user from malicious software
changes. In the case that the signature check fails, the
application will not launch and the browser is redirected to open a
window to a URL indicating an error occurred and a reinstall of the
application is required. Industry standard algorithms which are
well known in the art for creating and reading a digital signature
are used. In one embodiment, the client is pre-configured to
perform a digital signature check based on the identification code
received. Alternatively, the signature check requirement can be
passed as a parameter to the button, along with the identification
code or other button characteristics.
[0045] Even further, the digital signature can be checked across
multiple partners or providers. For example, the content provider
can check against its own digital signature or the digital
signature of a partner. For example, the content provider (i.e.
Yahoo) can check the signature of a partner's (i.e. an Internet
Service Provider) executable and provide the partner's users with
access to launch the executable from a partner-cobranded
Toolbar.
[0046] In one embodiment, the button to launch an application may
be configured by the user such that an application of their
preference is launched. The button for launching an application may
be requested by the user as a customizable button, as part of a
request for the contents of a downloadable toolbar. For example,
there may be certain applications that are used on a regular basis
by the user and the user may desire to have easy access to
launching the application.
[0047] Alternatively, a content provider may automatically
configure and transmit a button for launching an application. For
example, the content provider may offer applications that work in
cooperation with the content provided.
[0048] FIG. 3 is a flowchart illustrating an exemplary process 300
of launching an application through a button on a browser according
to an embodiment of the disclosure. Process 300 is generally shown
from the client's perspective. The client side module, which works
in communication with the buttons in accordance with the present
disclosure, recognizes when a button to launch an application has
been activated by the user as is indicated at 310. This may be
accomplished through commonly used or know ActiveX Controls and/or
functions. As previously described, the button to launch an
application has certain button characteristics associated with it.
The button characteristics are passed to the client side module,
and a series of checks occur.
[0049] The application identification code is one of the button
characteristics. As indicated at 320, the application
identification code is checked to see if it is recognized by the
client side module. The client side module generally comes
pre-configured with a plurality of identification codes and the
related information necessary to launch the application. If the
information necessary to launch the application (i.e. file path or
registry location) is present within the client side module,
processing continues to step 330 where a version check occurs.
[0050] The version check preferably comprises using ActiveX
controls to determine the version of the application currently
installed on the client's machine, and comparing with the version
number transmitted by the content provider as being the latest
available version. If the version of the installed application is
less than, or older, than the version number transmitted as one of
the button characteristics by the content provider, the user may be
prompted to upgrade the application to the latest available
version.
[0051] Such an update may not be required and may be at the
discretion of the user. However, in some embodiments, the content
provider may also transmit a forced update parameter, which forces
the user to update to a newer version of the application. Such a
check is indicated at 340. The forced update parameter for example
may simply be "yes" or "no", or "0" or "1".
[0052] If it is determined that the application should be updated,
processing proceeds to step 360. As mentioned previously, the
content provider transmits a fallback URL as one of the button
characteristics. The fallback URL is preferably used when the
identification code associated with the button is not recognized by
the client side module. The fallback URL is also preferably used
when it has been determined that the version of the installed
application is not the latest version available. The fallback URL
can further be used when it has been determined that a forced
update is to occur, as may be determined by the content
provider.
[0053] In any case, the fallback URL directs the user to a location
where the application to be launched by the button can be
downloaded, as is indicated at 360. The fallback URL is entered
into the browser and the user is automatically navigated to the
site where the latest version of the application can be installed.
Installation of the application, whether for the first time, or as
an updated version, occurs at step 370.
[0054] It may also be necessary for the client side module to be
updated. For example, if a new application is installed, the client
side module may also need to be updated with the proper information
for launching the application, as well as the associated
identification code. Such an update is indicated as step 380.
[0055] The application is finally launched as indicated at 350.
Again, this is accomplished by using the application identification
code associated with the button, which is then used to reference
the information necessary to launch the application, such as the
registry location which in turn identifies the path of the
application, as is pre-configured within the client side
module.
[0056] In yet another embodiment, the client side module does not
need to be pre-configured with an identification code, or updated
to include an identification code, to launch an application.
Instead, the client side module is configured to support a means to
invoke a separate COM (Component Object Model) object binary when a
specific button is pressed.
[0057] Microsoft COM technology in the Microsoft Windows-family of
Operating Systems enables software components to communicate. COM
is used to create re-usable software components, link components
together to build applications, and take advantage of Windows
services. The family of COM technologies includes COM+, Distributed
COM (DCOM) and ActiveX.RTM. Controls.
[0058] For example, a COM interface can be implemented by COM
objects (digitally signed by a content provider), to extend the
functionality of the client. When the button to launch an
application is clicked, the client responds by loading a COM object
specified by a GUID passed in from the server and associated with
the button. The GUID is just another parameter like the
identification code and version (e.g. id="as" version="1.11").
Using the GUID value, the client will locate the path to the COM
object's binary (a DLL) from the Registry, verify the signature on
that binary as Yahoo (or a partner), invoke the "get_Version"
method and check if it's up-to-date, then invoke the "HandleAction"
method, passing in the identification code. The COM object can
launch an application associated with that identification code. As
with other embodiments, a fallback URL can also be used if the
application associated with the GUID isn't located on the system or
if the version is out of date.
[0059] In such an embodiment, a new button configuration can be
created on the server end, including a new application
identification code, and the configuration sent to the client. This
allows an application that was deployed after our client binary was
installed to be launched by the client, without having to update
the client binary code.
[0060] FIG. 4 is an exemplary screen shot illustrating a browser
400 implemented according to an embodiment of the disclosure.
Browser 400 includes a plurality of windows that provide various
functionalities to an Internet user. The browser 400 may comprise a
first application window 405 that typically defines the general
size, color, and layout of the browser 400 and includes window
control buttons 470 (e.g., minimize, close, etc.) for that
application window 405. The browser 400 may also comprise a browser
window 415 for viewing web content like web pages and toolbar
windows 410 in a user interface area. The toolbar windows 410
typically define information and/or functionality that is a user
interface to assist an Internet user when accessing and navigating
the Internet. For example, the toolbar windows 410 may provide
toolbars, pull-down menus, Plugins, applications, etc. A browser
window 415 is provided as part of the browser 400 within which
content from an Internet content provider 120 (see FIG. 1) may be
displayed.
[0061] Toolbar windows 410 provided at the top (see FIG. 4) of the
application window 405 define four toolbars 425, 430, 435, 440,
which may include a variety of interface controls such as, for
example, pull-down menus, functional buttons (e.g., stop, back,
forward, home, etc.), and a combination of functional buttons and
windows (e.g., a search button arid window). The upper most toolbar
425 provides a plurality of pulldown menus; the second toolbar from
the top 430 provides a plurality of functional buttons; the third
toolbar from the top 435 provides a pull-down menu and a window,
e.g., a URL address window; the bottom most toolbar 440 is executed
by the client-side module 174 and provides added functionality to
the browser such as a search field and a button to launch an
external application, e.g., button 445. Toolbar 440 in one
embodiment is provided by another provider other than the provider
of the browser.
[0062] FIGS. 5a and 5b are screenshots illustrating an exemplary
embodiment of the bottom most toolbar 440 in accordance with the
teachings of the present disclosure. Toolbar 440 includes a
shortcut button to a content provider 515, e.g., www.yahoo.com, a
toolbar settings button 525, a search field 530, a button for
launching an application 445, a shortcut button to a customizable
webpage 550, and other menu buttons 555 having a drop down menu
including items such as shortcuts to news, weather, shopping, and
auctions. The button for launching an application 445 may include
an icon, a button title, and a drop down menu button.
[0063] FIG. 5b illustrates the toolbar when the drop down menu
button of button 445 has been selected. When the drop down menu
button of button 445 is selected, an exemplary drop down menu
including multiple items appears. At the top of the drop down menu
is the option for launching an application--in this exemplary
embodiment--"Run Anti-Spy . . . " 505. Several other items are
listed below, including options for "Help", "Anti-Spy Community",
"Submit Feedback", and "Tell a friend about Anti-Spy" 510. These
items can be selected by an Internet user and generally comprise a
link or URL to navigate them to another page in the internet
browser.
[0064] FIGS. 6 and 7 are screen shots of an exemplary embodiment as
detailed in the present disclosure. FIG. 6 illustrates a screen
shot of an exemplary embodiment wherein an internet browser 405
having a toolbar 440 is configured with a button 445 for launching
an external application. Button 445 has a drop down menu with
several options. In the exemplary embodiment as shown in the
Figures, a content provider offers and/or partners with a provider
of an anti-spy application. Button 445 is provided on toolbar 440
for launching the anti-spy application. When button 445 is
activated by the user, the anti-spy application is launched.
[0065] FIG. 7 illustrates the anti-spy application 710 launched
after the button 445 has been activated by the user. Any type of
application can be launched using the button in accordance with the
present disclosure. For example, a music player could be launched
using the application. A content provider can take advantage of
using the button in accordance with the present disclosure to
promote or advertise the use of certain applications.
[0066] While the embodiment above describes a buttons for launching
an external application, the disclosure is not limited to this
case. Thus, while there have been shown and described and pointed
out fundamental novel features of the disclosure as applied to
preferred embodiments thereof, it will be understood that various
omissions and substitutions and changes in the form and details of
the disclosed disclosure may be made by those skilled in the art
without departing from the spirit of the disclosure. It is the
intention, therefore, to be limited only as indicated by the scope
of the claims appended hereto.
[0067] While the apparatus and method have been described in terms
of what are presently considered to be the most practical and
preferred embodiments, it is to be understood that the disclosure
need not be limited to the disclosed embodiments. It is intended to
cover various modifications and similar arrangements included
within the spirit and scope of the claims, the scope of which
should be accorded the broadest interpretation so as to encompass
all such modifications and similar structures. The present
disclosure includes any and all embodiments of the following
claims.
* * * * *
References