A further understanding of the nature and advantages of the present invention may be realized by reference to the figures which are described in remaining portions of the specification. In the figures, like reference numerals are used throughout several figures to refer to similar components. In some instances, a sub-label consisting of a lower case letter is associated with a reference numeral to denote one of multiple similar components. When reference is made to a reference numeral without specification to an existing sub-label, it is intended to refer to all such multiple similar components.
Embodiments of the present invention provide, among other things, an intelligent tool bar for use in association with a web browser for accessing a network, such as the Internet. The tool bar may include buttons, menus, pick lists, data entry fields, and/or any of a variety of tools familiar to those who use the Internet, an intranet, and/or any of a variety of software products. The tool bar may be adaptable to a user, a user's location, a network access provider, and/or the like. The tool bar may be placed within a content area of a web browser window even though not necessarily generated by the browser. In specific embodiments, the tool bar adapts to any browser.
The ensuing description provides preferred exemplary embodiment(s) only, and is not intended to limit the scope, applicability or configuration of the invention. Rather, the ensuing description of the preferred exemplary embodiment(s) will provide those skilled in the art with an enabling description for implementing a preferred exemplary embodiment of the invention. It is to be understood that various changes may be made in the function and arrangement of elements without departing from the spirit and scope of the invention as set forth in the appended claims.
Specific details are given in the following description to provide a thorough understanding of the embodiments. However, it will be understood by one of ordinary skill in the art that the embodiments may be practiced without these specific details. For example, systems may be shown in block diagrams in order not to obscure the embodiments in unnecessary detail. In other instances, well-known processes, structures and techniques may be shown without unnecessary detail in order to avoid obscuring the embodiments.
Also, it is noted that the embodiments may be described as a process which is depicted as a flowchart, a flow diagram, a data flow diagram, a structure diagram, or a block diagram. Although a flowchart may describe the operations as a sequential process, many of the operations can be performed in parallel or concurrently. In addition, the order of the operations may be re-arranged. A process is terminated when its operations are completed, but could have additional steps not included in the figure. A process may correspond to a method, a function, a procedure, a subroutine, a subprogram, etc. When a process corresponds to a function, its termination corresponds to a return of the function to the calling function or the main function.
Moreover, as disclosed herein, the term “storage medium” may represent one or more devices for storing data, including read only memory (ROM), random access memory (RAM), magnetic RAM, core memory, magnetic disk storage mediums, optical storage mediums, flash memory devices and/or other machine readable mediums for storing information. The term “computer-readable medium” includes, but is not limited to portable or fixed storage devices, optical storage devices, wireless channels and various other mediums capable of storing, containing or carrying instruction(s) and/or data.
Furthermore, embodiments may be implemented by hardware, software, firmware, middleware, microcode, hardware description languages, or any combination thereof. When implemented in software, firmware, middleware or microcode, the program code or code segments to perform the necessary tasks may be stored in a machine readable medium such as storage medium. A processor(s) may perform the necessary tasks. A code segment may represent a procedure, a function, a subprogram, a program, a routine, a subroutine, a module, a software package, a class, or any combination of instructions, data structures, or program statements. A code segment may be coupled to another code segment or a hardware circuit by passing and/or receiving information, data, arguments, parameters, or memory contents. Information, arguments, parameters, data, etc. may be passed, forwarded, or transmitted via any suitable means including memory sharing, message passing, token passing, network transmission, etc.
According to embodiments of the invention, a user may connect wired or wirelessly to a network access point, or access hub, operated by an access provider. The access provider may be the owner of the physical location of the network access point or may be providing a service on behalf of the location owner. In some embodiments, the tool bar is used in combination with free or reduced-rate network access, in exchange for which the tool bar includes revenue generating features.
In some embodiments, for example, buttons are placed on the tool bar according to business agreements that provide revenue to the access provider. The buttons may be related to the physical location, the user's demographics, the user's network usage habits, the time of day, the day of the week, and/or the like. In a specific example, the physical location is a hotel and one of the buttons placed on the tool bar provides the user with a link to hotel activities. In another embodiments, the network access is provided in association with a convention and conventioneers are able to access the network in exchange for having the tool bar rendered in their web browser window. The tool bar includes convention-specific items such as, for example, a convention map, a schedule of activities, presentation notes, announcements, local restaurants, hotels, and transportation providers, and/or the like. In some embodiments, the tool bar facilitates other features, such as, for example, instant messaging, email, collaboration/conferencing, bulletin boards, threaded discussions, alerts, streaming media, voice communication (e.g., VoIP), secured communication, location mapping, hosted applications, and/or the like. The tool bar also may link to web pages hosted by the access provider, which web pages provide both information to users and advertising real estate for additional revenue generation. In some embodiments, the tool bar is configured to receive pushed content. This may take place dynamically, while the web page remains static. In other words, the tool bar may act as a portal through which content may be pushed to the user. The content may be alerts, announcements, offers (e.g., coupons for local bars and restaurants), and/or the like. Many such examples are possible.
Having described embodiments of the invention generally, attention is directed to
The data storage arrangement 108-1 may be a database of users. The data storage arrangement 108-2 may be a database of advertisers. The host computer system 102 also may include server software that interacts with user computers to render tool bar content and/or applications within a browser content window operating on a user computer.
The network 104 may be any of a variety of networks known to those skilled in the art. For example, the network may be any wide area network, an intranet, any local area network, and/or the like. The network 104 may include wired and/or wireless links. In a specific embodiment, the network 104 is the Internet.
The system 100 also includes one or more network access locations 114. A network access location 114 (aka, venue), may be any physical location at which network access may be provided. The venue may be a hotel, an airport, a restaurant or bar, a city, an airplane, an office complex, a convention center, and/or the like. Generally, a venue includes an Internet access hub 116, a private network 118, and user computers 119 that have access to the private network. Additionally, each venue 114 includes an access hub 120, a local server 124, and a local database 126. Users using user computers 128 access the network 104 via the hub 120 via wired or wireless connections. The local server 126 hosts local functions, and, in some embodiments, replaces the host computer system 102. User and/or advertising information may be maintained on the local database 126.
In a specific embodiment, the venue 114-1 is a hotel and the network 104 is the Internet. A user interfaces a user computer 128-13 to the network 104 via a wired connection and the hub 120-1. The user receives a “splash” page through which the user may be required to register and/or obtain a userID and password. The user's registration information is stored at either the local database 126-1 or a database associated with the host computer system 102. The splash page is hosted by either the local server 124-1 or a server at the host computer system 102.
Following registration, the user is able to access the network 104. According to embodiments of the invention, web pages requested by the user are intercepted by the hub 120-1, and code is inserted to create the tool bar above the content in the content area of the web page. The user then may interact with the tool bar to operate any functions provided by the tool bar. The user may be unable to access any other network resources prior to completing the registration/logon process. In some embodiments, however, the user is able to access other functions provided by the network (e.g., email) without completing the registration and/or without having a tool bar rendered on the user's display.
During the registration process, demographic information about the user may be collected. This may include, for example, the user's age, gender, income, residence address, interests, and/or the like. The user demographic information is used along with venue-specific information to determine items to place in the user tool bar within the user's browser.
Attention is directed to
In a specific embodiments, the injected code is Macromedia Flash code. The code may include embedded external calls that acquire tool bar content and/or applications from a local server 126 and/or a server at the host computer system 108.
Having described a system according to embodiments of the invention, attention is directed to
The method 300 begins at block 302 at which location any necessary infrastructure is installed at a venue. At block 304, business relationships are established. The business relationships may be with venue owners or operators, advertisers, equipment providers, and/or the like. At block 306, tool configuration information relating to the business relationships, infrastructure, and/or the like is stored, at which point, the venue is prepared to provide access to users.
At block 308, a network access request is received from a user. This may be by way of a wired connection or a wireless connection. In a specific embodiment, the user initiates a browser session through which the user accesses the network. The user may be presented with a “splash” page that collects a userlD and password from the user. Otherwise, the user is unable to access the network. An exemplary screen shot for accomplishing this is provided at
At block 310, a determination is made whether the user is a registered user. This may be accomplished by having the user select a link that takes the user to a registration page, such as the one provided at
Those skilled in the art will appreciate that the logon and registration pages are merely exemplary, and other examples according to other embodiments may collect more, less, or different information. Moreover, blocks 310, 312, 314, 316 are shown in dotted lines to emphasize that registration is optional. In some embodiments, users are allowed to access the network without providing any registration information and without being a registered user. In other embodiments, the registration information is requested but providing it is optional. Whether the registration information is optional or even presented may be the decision of the venue owner/operator, rather that the network access provider. Many such possibilities exist.
Continuing with the description of the method 300, at block 318 a user requests a network resource. In a specific embodiments, the user requests a web page from the Internet. This may be accomplished by typing a URL in a web browser, selecting a link from the user's “home page,” having the user's browser request the user's default home page with no further input by the user, selecting a web page from the user's “favorites” menu, and/or any of a number of well known ways for requesting a web page.
At block 320, the inbound transmission of the requested network resource is intercepted. In a specific embodiments, this is accomplished by the access hub 120 of
At block 322, the access hub inserts tool bar code into the inbound transmission, which tool bar code is programmed to create a tool bar window within the content rendering window of the user's web browser. In a specific embodiment, the access hub inserts a small amount of Macromedia Flash code into the inbound transmission stream.
At block 324, the code comprised by the inbound stream and the tool bar code are executed by the user's web browser. In executing the tool bar code, external calls for content and/or applications are performed. The request may be addressed to a local server (e.g., the local server 124 from
In some embodiments, the content source may include calls to still other content sources. For example, the local server 124 may include basic content, which content is provided to the user's web browser in response to the external call. Additionally, however, the local server 124 may refer the user's browser to yet more content at the server 112 at the host computer system 102. Many such examples exist.
At block 326, the content from all sources is populated into the tool bar and the tool bar is rendered, along with the network resource, on the user's computer at block 328.
Thereafter, the user may request additional network resources back at block 318. The request may take place in any of the ways previously described. Additionally, however, the user may request the network resource via the tool bar. The additional network resources are rendered in the content area of the user's web browser window along with the tool bar, as previously described. In other words, the tool bar persists, within the content area of the user's web browser window, throughout the user's browsing session for most network resources the user requests via the access hub.
In some embodiments, the user is also able to initiate applications provided to the user via the tool bar. For example, the user may send instant messages via the tool bar, participate in conference sessions, engage in voice over Internet Protocol (VoIP) sessions, and/or the like.
In some embodiments, a web page is modified twice, once before it has been rendered by the browser and a second time after it has been rendered by the browser using, for example, JavaScript. The modification prior to being rendered by the browser includes inserting a JavaScript that creates a location for the toolbar. The JavaScript may be specifically designed to insert the toolbar and may be different, depending on how the page is structured. Once the page has been fully downloaded and rendered by the browser, the JavaScript executes and makes the changes necessary to create the toolbar and its associated functionality.
In a specific example of the foregoing, when the content modification engine 254 detects a page being requested by a client browser, it analyzes the page to determine how to insert the toolbar into the page. The content modification engine 254 creates a custom JavaScript, specifically tailored to the page being requested, and saves it in memory with a unique identifier for later retrieval by the browser. The content modification engine 254 then creates and inserts a link to the script into the HTML stream as it passes back to the client browser. As the browser renders the page, it sees the script link with the unique identifier attached and requests to download the script. The content modification engine 254 detects and intercepts the request transparently to the client browser and sends back the correct, unique script for the page being modified. The script and its unique identifier are then removed from memory, thereby preventing further requests. This offers a limited amount of protection for the JavaScript so that a user cannot easily “steal” it. Even if a user were able to view the JavaScript used to make the modifications to the page, the script would be so customized to the page that it would be virtually useless to the user.
Having described several embodiments, it will be recognized by those of skill in the art that various modifications, alternative constructions, and equivalents may be used without departing from the spirit of the invention. Additionally, a number of well-known processes and elements have not been described in order to avoid unnecessarily obscuring the present invention. Accordingly, the above description should not be taken as limiting the scope of the invention, which is defined in the following claims.