The present invention relates to networked computer applications and, more particularly, to a method for automatically providing application functionalities to a computer user based on network searching by the user.
Computer applications provide users with a great variety of functionalities, having a scope that ranges from general-purpose to highly-specialized. A challenge to vendors who offer specific applications is identifying and reaching users who would benefit from the advantages offered by those applications. Vendors want to make it easy for computer users to learn about their applications and to install those applications on their computers. A challenge to the users is managing the large number of computer applications on their computers. Users want it to be easy to access and employ useful applications.
Networks, such as the Internet, provide increased opportunity to vendors for reaching interested users and distributing computer applications to those users. In addition, computer applications that are compatible with networks offer additional valuable functionalities to the users.
The term “computer” herein denotes any device or apparatus capable of executing data processing instructions, non-limiting examples of which include: personal computers; workstations; embedded systems; processors, terminals; personal digital appliances (PDA); communications and telephonic devices, such as mobile telephones; and memory devices, storage devices, interface devices, smart cards and tags, security devices, and security tokens having data processing and/or programmable capabilities. The term “computer environment” herein denotes any collection of one or more computers or like devices which operate in conjunction, such as networked computers.
The term “computer application” herein denotes a collection of functionalities offered to a computer user. Non-limiting examples of applications include: a word processor; an electronic calendar; and a computer game. A computer application is embodied in a computer program or computer software which provides the useful services to the computer user. An application may be offered for more than one type of computer, in which case the features and/or user interface may be adapted to the characteristics of the respective computers and still be considered the same application. As a non-limiting example, the user interface and features of a mobile telephone version of a particular word processor may offer a reduced set of functionalities in comparison to version for a desktop, yet be considered the same application. Usually, different versions of an application share the same application name, primary features, and ability to exchange data files among the respective computers.
For brevity, a computer application is also referred to herein an “application”.
A computer can recognize link 131 and use link 131 to access all of application 101. Application title 103 has an application title name 133 and/or an application title icon 135, both of which are examples shown in the drawings as representative of application titles. An application title name is any linguistic representation serving to identify the application to a user. Likewise, an application title icon is any graphical representation serving to identify the application to a user.
Associated with application 101 is a set of functionalities 105, which provide useful services to the user and/or to third parties, non-limiting examples of which include service providers and vendors. Application 101 also includes executable code 107, which includes data and computer instructions for a computer or other processing device to carry out the processing which provides the functionalities, by executing executable code 107, or portions thereof. Application title 103 along with application title name 133 and application title icon 135 are logically connected via link 131 to application 101 along with functionalities 105 and executable code 107. The examples of applications, application titles, application title names, and application title icons used herein are non-limiting. In addition, all examples are fictitious and are intended to be representative of actual counterparts for the purpose of illustration.
Application title 103 is also shown as separate from application 101, because application title 103 can exist as a separate entity apart from other portions of application 101, notably executable code 107.
Application 101 is contained within a computer environment which is capable of executing executable code 107 to provide functionalities 105. As noted previously, a computer environment can also recognize link 131 of application title 103 to access and execute executable code 107. Non-limiting examples of such computer environments include computers, computer operating systems, and interconnected computing devices. Such a computer environment may include a local computer 109 which is physically-accessible to a user, as well as one or more remote servers 111 which are connected via respective active communication links 115 to a network 113, a non-limiting example of which is the Internet. Local computer 109 is also connected to network 113 via an active link 117, and thus computer 109 and servers 111 are able to communicate among one another over network 113. The terms “local” and “remote” with reference to a device pertain to the physical accessibility of the user to the device. For example, local computer 109 may be a personal computer belonging to the user. Remote servers 111 may be servers of service providers and/or vendors.
Application 101 may reside, for example, entirely within local computer 109. Alternatively, for example, executable code 107 may reside in one or more servers 111 for remote execution, and provide services and functionalities to the user over network links 115 and 117.
In addition to being part of application 101, application title 103 is also contained within local computer 109. The user causes computer 109 to execute application 101 by any of various methods involving the selection of application title 103 via application title name 133 or application title icon 135. Such methods include, but are not limited to: selecting application title 103 and calling an open or run command from a menu; or clicking, double-clicking, or tapping application title 103, or by using a keyboard “shortcut” command associated with application title 103. An application title is said to be “opened” or “run” by such actions. In functional terms, the operating system of computer 109 recognizes link 131 and interprets the user's action to initiate the execution of executable code 107 in computer 109, loading executable code 107 into the executable memory of computer 109, if necessary.
Although application title 103 is contained within computer 109, it is not necessary for application 101 to be completely contained within computer 109.
Application 101 may also be contained in one or more of remote servers 111. So long as link 131 accurately identifies the location of application 101 in a manner that allows the operating system of computer 109 to properly initiate execution of executable code 107, application 101 need not be completely contained in local computer 109. Alternatively, application 101 may be distributed among several devices; for example, the user interface functionalities and executable code of application 101 may be located in local computer 109, and data processing functionalities and executable code of application 101 may be located in remote servers 111.
It is also noted that specific computer applications are generally embodied in self-contained instances, each of which is able to function independently in suitable computer environments. References to particular applications in the descriptions herein are to specific instances of the respective particular applications, and it is understood that other instances of the same applications may simultaneously exist and be operational in other computer environments and/or divisions thereof. Similarly, references herein to specific application titles and their components are to specific instances of the respective application titles.
The term “browser” herein denotes a computer program or computer software running on a local computer which provides an interface to a user for accessing data and functionalities provided on remote servers over a network.
It would be advantageous to both vendors and users alike to have an efficient way for users to easily obtain additional applications that provide functionalities which are particularly relevant to their network browsing, and which would be easy for users to install in their computers and use. This goal is met by the present invention.
The present invention provides methods for automatically offering applications to a computer user, which provide functionalities relevant to the user's network browsing and searching. The application titles are installed automatically and unobtrusively in the user's computer, making it easy for the user to access their respective functionalities. In some cases, the executable code of an application is also installed, so that the operation of the application is network-independent. In other cases, an application title links to the application on a remote server, requiring a network connection to access the functionalities of the application.
In an embodiment of the present invention, a software agent in a local computer employed by the user is associated with a toolbar attached to a network browser program installed in the computer. In a further embodiment, the software agent is installed as an add-in of the browser. In another embodiment, the software agent runs in background mode, monitoring network communications with the capability of exchanging messages with the user through the browser and/or through other message windows. The agent monitors network traffic between the local computer and remote servers, particularly regarding the sending of search queries and the receiving of search results. When the agent detects messages related to outgoing search queries and/or incoming search results, a reporting message is sent by the agent to a designated server along with the parameters of the search query and/or the search results. In response, the designated server may select one or more applications with functionalities related to the search query and/or search results, and then install the selected application title in the user's local computer.
In an embodiment of the present invention, the application title is placed on a toolbar in the user's browser, in the form of an application title icon. In another embodiment, the application title appears in a drop-down list from the toolbar, rather than as a separate icon on the toolbar itself. In another embodiment, the application title is displayed in a text list or in a drop-down list or other window according to the local computer's operating system. In a further embodiment of the present invention, the user decides which form of link to employ.
To show the user the benefits of the application, in another embodiment the application is run when installation is complete, and the results of running the application are shown in a popup window.
Therefore, according to the present invention there is provided a method for improving the browsing experience of a user of a local computer connected to a network, the method including: (a) executing, by the local computer, instructions of a software agent contained therein, for monitoring messages exchanged between a browser in the local computer and servers connected to the network; (b) detecting, by the monitoring, at least one message of the following messages: (1) a message that includes a search query; (2) a message that includes a search result; (c) sending a reporting message derived from the at least one message to a predefined server on the network; (d) receiving, from the predefined server, an application title related to an application, wherein the application was selected by the predefined server in response to the reporting message; (e) automatically opening the application title to cause the application to execute; and (f) automatically storing the application title in a nonvolatile storage device of the local computer, for allowing the user to subsequently execute the application irrespective of detecting the at least one message.
The present invention will be more fully understood from the following detailed description of the embodiments thereof, taken together with the drawings in which:
The principles and operation of methods according to the present invention may be understood with reference to the drawings and the accompanying description.
In embodiments of the present invention, agent 315 is completely contained within local computer 109. That is, in such embodiments agent 315 does not require a connection to the network or external computing resources to operate. Also, agent 315 does not feature a user-visible application title, because the user does not have to issue any commands for computer 109 to run agent 315. In some embodiments of the present invention, agent 315 is launched automatically upon startup of browser 201. In other embodiments, agent 315 is launched automatically upon startup of computer 109.
Agent 315 is associated with, or forms part of, toolbar 301 via a link 323. Toolbar 301 is also embedded within local computer 109 via a link 321, as will be discussed in further detail below.
On toolbar 301 is an exemplary application title icon 303, which is representative of toolbar application title icons in general. As before, application title icon 303 has a link 305 to application 307. Application 307 has an application title 309, functionalities 311, and executable code 313. As illustrated in
In the non-limiting example shown in
The term “search request” herein denotes a character string written or created by the user in natural human language, typically via typing one or more search words or search phrases into an interactive text box. In the non-limiting example of
The term “search query” herein denotes a character string containing at least one search parameter of a search request, which is expressed in formalized syntactic form, typically by a computer program. In the non-limiting example of
A search query message 502 based on search request 501 is sent via logical path 503 to search server 505, and search server 505 returns a search result message 508 via logical path 507 to computer 109. Search query message 502 contains parameters of a search based on search request 501, which in this non-limiting example includes the user's intention to request information on a book by a specific book title. Thus, the parameters in search query message 502 include the search term “book” along with the book's title.
Typically, search result message 508 include a set of network pointers, in the form of Universal Resource Locators (URL's) which give the locations on the network of resources, such as Web pages, which feature or cite the information indicated in search query message 502. Agent 315 employs a monitor 509 to watch message traffic over logical paths 503 and 507. In an embodiment of the present invention, agent 315 detects search query message 502 and sends a report message 510 via logical path 511 to designated server 513. Designated server 513 has been pre-assigned to receive report messages such as report message 510, which contains at least one parameter of search query message 502 and/or at least one parameter derived from parameters of search query message 502.
In another embodiment of the present invention, agent 315 detects search result message 508 and sends a report message 510 via logical path 511 to designated server 513. According to this embodiment, agent 315 may benefit from sophisticated processing performed by search server 505. In a non-limiting example, a search query message might include the parameter “high definition camera”. Search server 505 might then process this search query message to include in the search result message a product referred to as an “HD camera”. By examining the search result message, agent 315 may thereby obtain additional search parameters related to the user's search request 501.
According to an embodiment of the present invention, in response to receiving report message 510, designated server 513 sends, via logical path 515, an application title 517 to computer 109. Application title 517 is logically connected to an application 521 via a link 519 (as previously detailed). Application 521 is selected by designated server 513 as being related to search request 501 and therefore being of possible interest to the user. In another embodiment, designated server 513 sends complete application 521 to computer 109.
In an embodiment of the present invention, after application title 517 is sent to computer 109, application 521 is executed.
In this non-limiting example, popup window 603 features a button 605 and a button 607 for user interaction. Button 607 allows the user to have application title 517 put onto toolbar 301, according to an embodiment of the present invention.
In a step 1013, the computer receives an application title 1015 which is linked to an application selected by the designated server. In an embodiment of the present invention, the selection is made in response to the reporting message; in other embodiments, the selection is made in response a search query of the reporting message, a search parameter of the reporting message, or a search result of the reporting message. In a step 1017 application title 1015 is stored in a non-volatile storage device in the local computer, and in a step 1019 application title is opened, causing the linked application to execute. Step 1017 and step 1019 may be performed in either order or simultaneously.
In further embodiments of the invention, the user browsing history is analyzed to detect patterns of browsing that reveal user interest in certain vertical markets. When users are interested in a vertical market, they may investigate that market over the Internet in other ways besides searching by queries (as previously described). In a non-limiting example, a user may already have established browser bookmarks (or “favorites”) for websites of interest, and may find additional new websites by following links on web pages which were visited in the course of browsing.
During recent browsing sessions the user has browsed web content on servers 1105a, 1105b, and 1105c pertaining to the vertical market of interest. Details of the user's browsing on server 1105a are illustrated here as being exemplary of the user's browsing on servers 1105b and 1105c as well. User requests and browsing commands 1102 are sent to server 1105a via a logical data path 1103, to which server 1105a responds with presentation data 1108 via a logical data path 1107. Software agent 315 monitors browsing commands 1102 and presentation data 1108 via a monitor 1109, and compiles a local history 1104. Designated server 1113 has been pre-assigned to receive report messages via a logical path 1111 such as a report message 1110 containing an analysis of local history 1104 pertaining to the user's vertical market interest.
In this non-limiting example, the user has a browsing action 1101 showing an interest in travel to Las Vegas, which software agent 315 indicates in report message 1110 to designated server 1113. In response to receiving report message 1110, designated server 1113 sends, via a logical path 1115, an application title 1117 to computer 109. Application title 1117 is logically connected to an application 1123 via a link 1119. Application 1121 is selected by designated server 1113 as being related to browsing action 1101 and therefore being of possible interest to the user. In another embodiment, designated server 1113 sends complete application 1123 to computer 109.
A further embodiment of the invention provides a computer product for performing the above methods and variants derived therefrom. A computer product according to this embodiment includes a set of executable commands for a computer within tangible non-transient computer-readable data storage including, but not limited to: computer media of any kind, such as magnetic media and optical media; computer memory; semiconductor memory storage; flash memory storage; data storage devices and hardware components; and a computer or remote data storage devices on a communications network. The terms “perform”, “performing”, etc., and “run”, “running”, when used with reference to a computer product herein denote that when the executable commands within the computer product are executed, the computer product causes the computer to perform the predefined actions.
While the invention has been described with respect to a limited number of embodiments, it will be appreciated that many variations, modifications and other applications of the invention may be made.
This application is a continuation-in-part of, and claims benefit of, co-pending nonprovisional U.S. application Ser. No. 13/470,481 entitled “Improving user browsing experience”, filed on May 14, 2012, which claims benefit of U.S. Provisional Patent Application Ser. No. 61/491,910, filed Jun. 1, 2011, entitled “Method for improving user browsing experience”, the disclosures of which are hereby incorporated by reference.
| Number | Date | Country | |
|---|---|---|---|
| Parent | 13470481 | May 2012 | US |
| Child | 13679855 | US |