WO2001067285A2 - Persistent portal for a browser - Google Patents

Persistent portal for a browser Download PDF

Info

Publication number
WO2001067285A2
WO2001067285A2 PCT/US2001/006834 US0106834W WO0167285A2 WO 2001067285 A2 WO2001067285 A2 WO 2001067285A2 US 0106834 W US0106834 W US 0106834W WO 0167285 A2 WO0167285 A2 WO 0167285A2
Authority
WO
WIPO (PCT)
Prior art keywords
browser
user
information
recited
user interface
Prior art date
Application number
PCT/US2001/006834
Other languages
French (fr)
Other versions
WO2001067285A3 (en
Inventor
Stephen Babin
Mark Dennison
Kenneth East
Robert Farnum
Chad Gibbons
Thomas Lea
Christakis Michael
Tonja Miller
Original Assignee
Merinta, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Merinta, Inc. filed Critical Merinta, Inc.
Priority to AU2001245406A priority Critical patent/AU2001245406A1/en
Publication of WO2001067285A2 publication Critical patent/WO2001067285A2/en
Publication of WO2001067285A3 publication Critical patent/WO2001067285A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/954Navigation, e.g. using categorised browsing

Definitions

  • TITLE PERSISTENT PORTAL FOR A BROWSER
  • the present invention generally relates to network browsers and graphical user interfaces. More particularly, the present invention relates to systems and methods for customizing graphical user interfaces.
  • the Internet is an important resource for reference, research, browsing, online shopping, and e-mail.
  • the Internet provides worldwide access to materials in a variety of subject areas.
  • the "Internet” is a decentralized global network connecting a large number of computers through standard communication and data protocols.
  • One ofthe most well-known aspects ofthe Internet is the World Wide Web.
  • the "World Wide Web” is a plurality of web pages interconnected by a set of hypertext links and accessible to computers on the Internet.
  • a "web page" may include an information-bearing document or application which is accessible on the World Wide Web. Web pages may also include graphics and data files containing images, video clips, three-dimensional graphics, and audio information.
  • a group of web pages sharing a particular address may be collectively referred to as a "web site”.
  • a browser is typically a software application that generates a graphical user interface so that a user may access the information in a user-friendly manner.
  • a number of different browsers are currently available, e.g., Microsoft's Internet Explorer, Netscape's Navigator, and Opera from Opera Software. Browsers have contributed to the recent growth in popularity ofthe Internet much in the same way that graphical user interfaces have contributed to the increased popularity of personal computers. The graphical user interface of browsers have allowed more people to access the Internet without specialized training and have spawned a deluge of new applications, including electronic banking and stock trading, interactive news, and online shopping.
  • Internet appliances is a term used to refer to any simplified computer or appliance that may be used to access the Internet and/or perform other networked functions. Thus, Internet appliances are also sometimes referred to as network appliances.
  • Internet appliances are inexpensive limited-purpose personal computers. They typically have displays, keyboards, touchpads, and other input devices, but they may not have all ofthe processing power or peripherals that a tradition personal computer has.
  • some Internet appliances may be configured without diskette drives, CD- ROMs, or DVD-ROMs. Because they are designed solely for Internet access (i.e., web browsing and email), they may have less expensive components (e.g., less memory and smaller or no hard drives).
  • the large numbers of people now spending time browsing the Internet have encouraged merchants, service providers, and traditional retailers (collectively “retailers”) to establish a presence on the Internet.
  • the low hardware cost of Internet appliances is now allowing some retailers to provide customers with free Internet appliances and Internet access in exchange for the right to control some aspects ofthe user's browsing experience. These controlled aspects may include the ability to display particular advertisements and branding information while the user is browsing and the ability to set the default web page that appears whenever the user first turns on the appliance or accesses the web (sometimes referred to as a "home page").
  • Next-generation Internet appliances may take this trend further by integrating browsers and Internet access functions into traditional appliances (e.g., refrigerators) that perform specific functions using the Internet (e.g., automatically ordering groceries).
  • traditional appliances e.g., refrigerators
  • Internet appliances may require customized user interfaces specifically tailored to the particular application and the particular needs of end users.
  • Yet another potentially desirable feature for retailers interested in advertising using the Internet would be the ability to more accurately track consumer's responses to particular web pages and/or advertisements. As the amount spent on Internet advertisement increases, demand for this feature may increase.
  • the problems mentioned above are at least in part solved by a system and method that implements a customizable framework for a graphical user interface based on a configuration file storing information that is usable to generate a customized user interface.
  • the configuration file may be configured to be easily updateable via a remote server without any required interaction from the end user.
  • each end user may have their own customized configuration data set that may be automatically updated and may be based on personal information, user-specific browsing history, and/or user-specific appliance usage.
  • configuration file and “configuration information” are used interchangeably.
  • Configuration file is a broad term meant to encompass all data storage mechanisms capable of storing information for use in generating the graphical user interface. For example, one or more individual data arrays, strings, variables, memory locations, or traditional files within a directory structure may all be considered to fall within the definition of "configuration file” and “configuration information” as the terms are used herein.
  • the method may be embodied as a browser software program that is stored on a computer-readable medium (e.g., diskette, CD-ROM, DVD-ROM, tape, RAM, ROM).
  • the browser may include a plurality of instructions that are configured to access a configuration file upon start-up (e.g., power-up, application start, or user login).
  • the configuration data set may include, inter alia, data defining a customized user interface appearance and functionality.
  • the customized user interface may include one or more user interface objects (also referred to as controls or user interface elements), and the configuration data set may include specific data corresponding to each ofthe customized or customizable user interface objects.
  • an object may be a graphical icon or menu item that is linked to a particular function or web site.
  • the browser may be configured to use the information stored in the configuration file to generate and display a customized user interface on a display device.
  • the browser may be further configured to monitor user interaction with the user interface objects and respond to user interaction with the objects. For example, the browser may be configured to access a particular web page that is linked to a particular icon that the user has selected (i.e., clicked on).
  • the browser may be configured to prompt the user for a password.
  • the browser may then be configured to use this password to select a particular configuration from a number of different configuration files, wherein each different configuration file may correspond to a different user or user profile.
  • this may allow the browser to efficiently support customized user interfaces for multiple users.
  • the configuration file may contain pointers or links to graphics files that contain the data needed to generate icons and other visible and audio portions ofthe user interface. In some embodiments, multiple configuration files may share some or all of he graphics files.
  • the configuration file may also include size and position information that is needed by the browser (or an underlying operating system) to position and render the visual information in the graphics files as part ofthe user interface.
  • the configuration file may further include linking information describing which functional modules (e.g., accesses to a particular web page) should be invoked in response to a particular user interface object being selected by said user.
  • the configuration file may also include similar information necessary to invoke one or more browser plug-in modules (e.g., audio or digital video stream players).
  • one browser plug-in may be an electronic wallet module.
  • the electronic wallet module may be passed information by the browser (or operating system) based on the information provided by the user when logging in (e.g., thus requiring the user to only enter their password once).
  • the configuration file may further include features such as a default home page address and default search engines that are also customizable and updateable via a remote server.
  • the use ofthe configuration file allows the browser to efficiently update the configuration file.
  • the browser may be configured to access a server on a periodic basis (e.g., at each power up, application start, log-in, or every hour) to update the configuration file.
  • These updates may include updated linking information, new graphics files, new position and size information, and new plug-in modules and stand alone applications for additional functionality.
  • the browser may be configured to wait until a predetermined idle state is reached before performing an update.
  • the user may be locked out from modifying some or all ofthe information in the configuration file.
  • one or more ofthe graphics files and/or configuration files may reside on a server instead of residing locally on the Internet appliance/computer system executing the browser application.
  • the browser may be configured to convey information to a predetermined server (or servers) about a user's actions while executing the browser, wherein the server is configured to update the browser's configuration file based on the information about the user's actions.
  • the server or servers may be configured to update the configuration file based on geographical information stored in the configuration file (e.g., the user's address) or provided by tlie end user. This may advantageously enable location-specific customized user interfaces.
  • the update may be configured to support "checkpoints", which allow the update process to be restarted from a checkpoint instead ofthe beginning ofthe update in response to the interruption ofthe update process (e.g., to devote more resources to user activities).
  • the update process may entail downloading entire new applications, supporting checkpoints may reduce the time needed to complete an interrupted update.
  • the data for the update is downloaded while the appliance or browser is in an idle mode, but the data may not be used to modify the configuration file (i.e., configuration information) until the next time the browser or appliance is started up (e.g., after a sleep mode or power down).
  • an Internet appliance configured to execute a customizable browser is also contemplated.
  • the appliance may include a display device (e.g., an LCD panel), a user input device (e.g., a keyboard), a network communications device (e.g., a modem), and a memory (e.g., a flash memory) configured to store tlie browser application and the configuration file, and one or more processors configured to execute the browser application.
  • the processors are configured to receive data from the input device, the network communications device, and the memory, and are configured to output data to the display device and the network communications device.
  • the memory may store an operating system (e.g., Linux, a Windows variant, or other operating system), the browser program, and the user interface configuration file.
  • an operating system e.g., Linux, a Windows variant, or other operating system
  • Tlie operating system may be configured to automatically execute the browser program (e.g., upon power up), and the browser program may be configured to automatically read the configuration file upon execution.
  • the browser may be configured to use the information in the configuration file to define the appearance and functional attributes of a customized user interface for the browser.
  • the Internet appliance may include additional hardware (e.g., a thumb or retinal scanner, or a microphone) which the browser may be configured to use to automatically select one of a plurality of configuration files.
  • additional hardware e.g., a thumb or retinal scanner, or a microphone
  • this may improve the speed ofthe login process and also improve security.
  • Figure 1 is a network diagram of one embodiment of a wide area network which is suitable for implementing various embodiments
  • FIG. 2 is an illustration of one embodiment of a typical computer system which is suitable for implementing various embodiments
  • Figure 2A is an illustration of one embodiment of an Internet appliance
  • Figure 3 is an illustration of one embodiment of a sample web browser user interface
  • Figure 4 is an illustration of another specific embodiment of a web browser user interface
  • Figure 5 is an illustration of yet another specific embodiment of a web browser user interface
  • Figure 6 is a block diagram illustrating one embodiment of a customizable framework for a browser user interface
  • Figure 7 is a block diagram illustrating one embodiment of a configuration file usable to implement a customizable browser framework
  • Figure 8 is a flowchart of one embodiment of a method for generating a configuration file usable to implement a customizable browser framework
  • Figure 9 is a flowchart of one embodiment of a method for using the configuration file and customizable framework in a browser; and Figure 10 is a flowchart illustrating one method for storing data generated by browser users. While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will herein be described in detail. It should be understood, however, that the drawings and detailed description thereto are not intended to limit the invention to the particular form disclosed, but on the contrary, the intention is to cover all modifications, equivalents and alternatives falling within the spirit and scope ofthe present invention as defined by the appended claims. Please also note that the headings used herein are for organizational purposes only and are not meant to have any effect on the interpretation ofthe claims or the detailed description.
  • FIG. 1 wide area network
  • FIG 1 illustrates one embodiment of a wide area network (WAN) 102.
  • WAN 102 is a network that spans a relatively large geographical area.
  • the Internet is one example of a WAN.
  • WAN 102 typically includes a plurality of computer systems which are interconnected through one or more networks.
  • Hie WAN 102 may include a variety of heterogeneous computer systems and networks which are interconnected in a variety of ways and which run a variety of software applications.
  • One or more mainframe computer systems 120 may also be coupled to WAN 102.
  • mainframe 120 may be coupled to a storage device or file server 124 and mainframe terminals 122a, 122b, and 122c.
  • the mainframe terminals 122a, 122b, and 122c may access data stored in the storage device or file server 124 coupled to or included in the mainframe computer system 120.
  • WAN 102 may also include computer systems 112b, personal digital assistants (PDAs) 128, and Internet appliances 126 and 113 (e.g., a refrigerator configured to order groceries using the Internet) which are connected to WAN 102 individually.
  • PDAs personal digital assistants
  • Internet appliances 126 and 113 e.g., a refrigerator configured to order groceries using the Internet
  • WAN 102 may include computer systems which are geographically remote and connected to each other via the Internet.
  • LAN 104 may be coupled to WAN 102.
  • LAN 104 is a network that spans a relatively small area. Typically, a LAN 104 is confined to a single room, floor, building or group of buildings.
  • Each node (i.e., individual computer system or device) on LAN 104 preferably has its own CPU with which it executes programs, and each node is also able to access data and devices anywhere on LAN 104.
  • LAN 104 allows many users to share devices (e.g., printers) as well as data stored on file servers.
  • LAN 104 may be characterized by any of a variety of types of topology (i.e., the geometric arrangement of devices on the network), of protocols (i.e., the rules and encoding specifications for sending data, and whether the network uses a peer-to- peer or client/server architecture), and of transmission media (e.g., twisted-pair wire, coaxial cables, fiber optic cables, radio waves).
  • LAN 104 typically includes a plurality of interconnected computer systems and optionally one or more other devices: for example, one or more workstations 110a, one or more personal computers 112a, one or more laptop or notebook computer systems 114, one or more server computer systems 116, and one or more network printers 118.
  • LAN 104 may include one of each of computer systems 110a, 112a, 114, and 116, and one printer 118. LAN 104 may be coupled to other computer systems and/or other devices and/or other LANs 104 through the WAN 102.
  • Figure 2 typical computer system
  • FIG. 2 illustrates a typical computer system 150 which is suitable for implementing various embodiments ofthe system and method for creating a customizable browser as described in greater detail below.
  • Computer system 150 typically includes components such as a CPU 152 with an associated memory medium 160.
  • the memory medium may store program instructions for computer programs, wherein the program instructions are executable by the CPU 152 (or more specifically, by tlie one or more processors within CPU 152).
  • the computer system 150 may further include a display device such as a monitor 154 (e.g., a liquid crystal display or "LCD”, a cathode ray tube display or "CRT", a head mounted display, or a projection display), an alphanumeric input device such as a keyboard 156, and a directional input device such as a mouse 158.
  • a monitor 154 e.g., a liquid crystal display or "LCD”, a cathode ray tube display or "CRT", a head mounted display, or a projection display
  • keyboard 156 and/or mouse 158 may be replaced or supplemented with a microphone and speech recognition hardware and/or software, a video camera, and/or a track pad.
  • the computer system 150 may be operable to execute the computer programs to implement creation of a customizable framework for a browser to be used with the World Wide Web as described herein.
  • the computer system 150 preferably includes memory medium 160 on which computer programs according to various embodiments may be stored.
  • the term "memory medium" is intended to include an installation medium, e.g., a CD-ROM, or floppy disks, a computer system memory such as DRAM, SRAM, EDO RAM, Rambus RAM, etc., or a non-volatile memory such as a magnetic media, e.g., a hard drive, or optical storage.
  • the memory medium may include other types of memory as well, or combinations thereof.
  • the memory medium may be located in a first computer in which the programs are executed, or may be located in a second different computer which connects to the first computer over a network. In the latter instance, the second computer provides the program instructions to the first computer for execution.
  • the computer system 150 may take various forms, including a traditional personal computer system, an Internet appliance as previously discussed, a mainframe computer system, a workstation, personal digital assistant (PDA), television system or other device.
  • the term "computer system” may be broadly defined to encompass any device having a processor which executes instructions from a memory medium.
  • the memory medium preferably stores a software program or programs for creating a customizable framework for a browser as described herein.
  • the software ⁇ rogram(s) may be implemented in any of various ways, including procedure-based techniques, component-based techniques, and/or object-oriented techniques, among others.
  • the software program may be implemented using ActiveX controls, C++ objects, JavaBeans, Microsoft Foundation Classes (MFC), Java, traditional programs, or other technologies or methodologies, as desired.
  • a CPU such as the host CPU 152, executing code and data from the memory medium includes a means for creating and executing the software program or programs according to the methods and/or block diagrams described below.
  • FIG. 2A sample Internet appliance Figure 2A illustrates one embodiment of an Internet appliance 180.
  • Internet appliance Internet appliance
  • Appliance 180 is an iBrowTM brand Internet Appliance from Merinta Corporation.
  • Appliance 180 may comprise display device 154 (e.g., a 10" LCD display), CPU 152, and keyboard 156.
  • keyboard 156 may be wireless (e.g., infrared) and may include an integrated pointing devices such as a track ball, mouse, or joystick.
  • Appliance 180 may also comprise speakers 170A-B, and a video camera 172.
  • appliance 180 may further comprise indicators 174 and additional buttons (e.g., power button 176). While each configuration may vary, in one embodiment CPU 152 may comprise one or more universal serial bus connectors, a 56k v.90 internal modem, a microphone input, and amplified headphone output.
  • CPU 152 may also be configured with an external volume control, external contrast control, an AC power adapter, dual RJ-11 phone jacks for line-in and telephone- out, and both flash memory and SDRAM (synchronous dynamic random access memory).
  • Indicators 174 may be configured to inform users of power up status or other information.
  • Internet appliance 180 may include a bar code scanner (for user identification and product identification), a smart card reader (for user identification), a JavaTM ring interface (for user identification), camera (for user identification and for video conferencing), a retinal scanner (for user identification), a thumb print scanner (for user identification), a microphone (for voice recognition and speech recognition), or a voice synthesizer (for text-to-speech).
  • a bar code scanner for user identification and product identification
  • smart card reader for user identification
  • JavaTM ring interface for user identification
  • camera for user identification and for video conferencing
  • retinal scanner for user identification
  • thumb print scanner for user identification
  • microphone for voice recognition and speech recognition
  • voice synthesizer for text-to-speech
  • Figure 3 sample web browser user interface
  • Figure 3 illustrates one embodiment of a web browser user interface 300.
  • toolbars are represented: a sizing toolbar 303, a title bar 304, a navigation toolbar 305, a URL toolbar 306, and a persistent portal 307.
  • a main content section 301 is shown below the persistent portal 307.
  • Scroll bars 302A-B may be found to the right and also below the main content section 301.
  • additional toolbars are represented: a status toolbar 308 and a live feed toolbar 309. To the right ofthe status toolbar 308 and the live feed toolbar 309, an advertisement 310 is shown.
  • advertisement 310 may be configured to display a different image periodically (e.g., a new image every 15 seconds or every 0.10 seconds). This allows animation within the advertisement and allows different advertisements to be displayed to the end user.
  • logo bar 312 may be implemented to display a retailer's or manufacturer's logo. logo bar 312 may also be animated. Depending upon the exact implementation, logo bar 312 may also be persistent, i.e., ever-present regardless of what the user is doing, which page the user is browsing, and regardless of which applications the user is executing.
  • Elements ofthe sizing toolbar 303 may include, for example, a logo, a minimize button, a maximize button, and a close button (not shown).
  • the title bar 304 may include the name of the browser, the name of a web page currently being viewed, or the name of a sponsor of the web browser (not shown) .
  • Elements of the navigation toolbar 305 may include a back button, a forward button, a stop button, a reload button, a home button, a print button, a font button, a window button, a help button, a favorites button, a search button, and an e-mail button (not shown).
  • the URL toolbar 306 may include an entry box into which a user may enter a URL address, and a GO button to load the entered URL address (not shown).
  • Elements ofthe persistent portal 307 may include labeled buttons, tabs, or other links, along with a logo ofthe sponsor ofthe web browser (not shown).
  • the main content section 301 displays the contents of web pages and may change based on the choice of button that the user selects (i.e., from the navigation toolbar 305 or from the persistent portal 307) or based on the URL address that the user enters in the URL toolbar 306.
  • the scroll bars 302A-B allow the user to view consecutive lines of data on the display screen, both vertically and horizontally.
  • “scroll” means that once the screen is full, each new line appears at the edge ofthe screen and all other lines move over one position. For example, when you scroll down, each new line appears at the bottom ofthe screen and all the other lines move up one row, so that the top line disappears.
  • Vertical scrolling refers to the ability to scroll up or down.
  • the status toolbar 308 may be configured to indicate the current status ofthe browser. For example, status toolbar 308 may indicated what percentage o the current page has been received across the network connection (e.g., "50% complete) or the address that is currently being accessed (e.g., connecting to "www. merinta.com.").
  • the live feed toolbar 309 may be configured to display data that is periodically updated. Examples of content that may be displayed in the live feed toolbar 309 includes a stock ticker, sports scores, and news headlines. This content may be automatically updated on a periodic basis (e.g., every five minutes). Please note that other types of toolbars, portals, and content areas may also be implemented using the customizable framework disclosed herein. The examples cited herein are merely for illustrative purposes and are not meant to be limiting.
  • the advertisement 310 may be a banner advertisement that links to a particular web page when the advertisement area is clicked on by the user.
  • the banner advertisement may be animated to attract the viewer's interest, and the advertisement may change periodically (e.g., once every minute) or based on the user's browsing activity.
  • Figures 4-5 specific browser user interface embodiments
  • Figure 4 illustrates a specific embodiment of web browser user interface 300.
  • Figure 5 illustrates another specific embodiment of web browser user interface 300.
  • the visual appearance of user interface 300 may change dramatically based on the different customizations made. Examples include the different organization of icons, different positions for the toolbars, different fonts, and different titles in title bars 304.
  • functional changes may also be implemented. For example, the web pages linked to the different icons in persistent portal 307 may be customized.
  • a bank providing an Internet appliance to its customers may wish to have links as illustrated in Figure 4 (e.g., to pages that perform electronic bill payment, loan application pages, or account information), while a retailer such as Amazon.com may wish to have links as illustrated in Figure 5 (e.g., to pages that sell music and videos, books, and travel reservations).
  • one or more ofthe toolbars such as persistent portal 307 may be fixed (i.e., the user cannot change, hide, or close the toolbars).
  • users may be allowed to move tlie toolbars around, resize them, or even hide them.
  • users may also be allowed to select the icons and the web pages to which tlie icons link.
  • Figure 6 customizable browser framework embodiment
  • a user interface construction application 400 is used to generate one or more configuration files 402A-402B, These configuration files store, inter alia, information on linking, position, size, color, geometry, graphic image, behavior, associated applications, and fonts. This information is useable by web browser 410 to generate a customized user interface.
  • the configuration files 402A-402B may include linking and position information for one or more graphics files 404A-404B, one or more third party modules 406, and one or more Internet appliance software applications 408.
  • web browser 410 may be configured to access one or more configuration files 402A-402B to generate a customized user interface.
  • web browser 410 is also configured to interact with operating system 412, which is responsible for managing and interfacing with the hardware ofthe computer (or Internet appliance).
  • user interface construction application 400 may be configured as a stand alone software application that is configured to operate on a computer system (e.g., a personal computer).
  • user interface construction application 400 may be bundled with web browser 410 as a restricted access feature available only to users with certain access privileges.
  • User interface construction application 400 may be configured with its own graphical user interface that allows user interface designers the ability to "drag-and- drop" icons or graphical images representing different user interface features to generate a user interface layout for web browser 410.
  • Configuration files 402A-402B may actually include the graphical information used to generate the icons and images that are incorporated as part ofthe customized user interface.
  • configuration files 402A-402B may merely include links (e.g., file name references or pointers) to the appropriate icon and/or graphics files 404A-404B.
  • Configuration files 402A-402B may also include subroutines or objects that call third party modules 406. Examples of these third party modules include streaming video clip players, streaming audio players, three-dimensional graphics decompression software, encryption software and electronic wallet modules.
  • Configuration files 402A-B may further include software that calls, executes or invokes additional software applications 408.
  • additional Internet appliance software applications include email programs, chat programs, calculator programs, word processors, news readers, telephone and video phone applications, and computer games.
  • tlie user interface construction application 400 may link a particular icon that is configured to invoke an email composition application in response to the user clicking on the particular icon.
  • configuration files 402A-B may also include links to particular functions within operating system 412. For example, in some customized user interfaces, a particular icon in the graphics user interface for web browser 410 may be linked to a power down or sleep function implemented within operating system 412.
  • each configuration file 402A-402B may be linked to one or more particular users or user profiles.
  • web browser 410 and/or operating system 412 may be configured to prompt the user for a password or user name.
  • Web browser 410 may be configured to use this information to select a particular configuration file corresponding to that user name or password.
  • the customizable framework illustrated in Figure 6 may be used within a browser configured to be executed on a personal computer or on an Internet appliance. Please note that Figure 6 merely illustrates one possible embodiment for this customizable framework.
  • graphics files 404A-404B may be supplemented by audio files that are configured to play customized audio clips or sounds in response to particular user actions.
  • configuration file 402A comprises a plurality of different types of information including corresponding password/user id information 420. This information may be used by the web browser or operating system to select which particular configuration file will be used for a particular user. In some embodiments, a particular configuration file may be designated as the default configuration file for any new users that do not have a password or user id. This information may also be stored with the corresponding password/user id information 420.
  • Configuration file 402A may also comprise general user interface information 422. Examples of this type of information may include the number of tool bars to be displayed, and whether or not the tool bars may be used by the user or hidden by the user. Configuration file 402A may also comprise specific information for each tool bar to be displayed. For example, configuration file 402A may include title bar information 424 that describes position and function information about the title bar (see item 304 in Figure 3). Title bar information 424 may include position information 426 (including minimum and maximum X and Y coordinates in screen pixels), color information 428, font information 430 (including typeface, font size, font attributes such as underlining, and font color), and information usable to link to a graphics file 432.
  • title bar information 424 that describes position and function information about the title bar (see item 304 in Figure 3).
  • Title bar information 424 may include position information 426 (including minimum and maximum X and Y coordinates in screen pixels), color information 428, font information 430 (including typeface, font size, font attributes such as underlining, and font
  • the graphics file link information may be used to display an image (e.g., a logo) on the title bar. Note, the information described in the Figure is merely for explanatory purposes, and additional information may be included according to a particular embodiment.
  • links to graphics file information 432 may further include position information and gamma correction information.
  • configuration file 402A may also include information for an options tool bar (or persistent portal) 434.
  • icon-specific information may also be included.
  • information corresponding to a first icon 436 may also be included.
  • a link or link information describing one or more associated web pages may also be included (see item 440).
  • a second set of information for a second icon 438 may include link information to the operating system (see item 442 in the figure). This information may be used to invoke an operating system function such as powering down the computer or Internet appliance.
  • each icon may support mouse-over or rollover effects (e.g., changing appearance in response to the cursor moving over the icon) or animation.
  • each icon may comprise multiple images, and one ofthe multiple images is selected in response to a particular user logging on. For example, there may be a large and a small set of icons, wherein the small set of icons are used to maximize the size ofthe main content area 450, while the larger set may be more suitable for users that have difficulty seeing smaller icons.
  • Configuration file 402A may also include information regarding the content area (see item 450 in the Figure), information regarding advertisements to be displayed (see item 460 in the Figure), and live feed tool bar information 470.
  • the advertisement information 460 and/or the live feed tool bar information 470 may include links to one or more web servers for content and advertisements (see items 462 and 472, respectively, in the Figure).
  • configuration file 402A may further include information necessary to invoke one or more plug-ins 480. This information may vary depending upon the plug-in being invoked, e.g., position information. As described in greater detail below, some embodiments of web browser 410 may be configured to store information regarding users' activities while the browser is executing. In some embodiments, configuration file 402A may include such data, or may include a pointer to a data file generated using such data (see item 490 in the Figure). In yet other embodiments, a plurality of pointers 490 may be included to data files with different types of user information stored therein.
  • the configuration file may be used to indicate to the browser which elements ofthe user interface should remain constant regardless ofthe user's actions.
  • persistent portal 434 may be configured to remain on the display device regardless of which content the user is viewing. As noted in the Description ofthe Related Art section ofthe application, this may be a particularly useful feature for retailers seeking to generate high traffic volumes for e-commerce web sites.
  • the example user interface of Figure 5 illustrated a series of icons in the persistent portal labeled "Clothing”, “Banking”, “Health”, “News”, “Music”, “Movies”, and “Food”. As the names of these icons indicates, each icon may be linked to a particular e-commerce or advertising site.
  • the retailer that provided the customized browser may configure each icon to link to a particular site ofthe retailer's choice (e.g., the retailer's own web pages or the web pages of a third party that has agreed to pay the retailer a commission based on the volume generated by the persistent portal links).
  • persistent portal 434 may be configured such that the user is prevented from obscuring the portal with any windows.
  • the user interface may be configured with a pop-up calculator that may be dragged around the screen.
  • the user interface may be configured such that the calculator may not be dragged over the region that defines the persistent portal. This may be a desirable feature for some retailers.
  • the user interface may be configured to prevent users from obscuring other toolbars, e.g., advertisement bar 310.
  • the persistent portal may be displayed regardless of what function the user is performing (e.g., drafting an email message), and may be configured to change periodically as updated by a server (e.g., the server may update the browser's configuration file automatically).
  • the browser may be configured to send usage information (e.g., information about which web pages were visited, for how long, content information, information about which parts ofthe screen the user's cursor is on or travels across, user presence information, scrolling behavior, etc.) back to the advertisement server or to another server (e.g., one operated by the retailer or browser developer).
  • usage information e.g., information about which web pages were visited, for how long, content information, information about which parts ofthe screen the user's cursor is on or travels across, user presence information, scrolling behavior, etc.
  • the server may then be configured to analyze the data to determine usage patterns and then change the configuration ofthe persistent portal to have links that better target the user's interests.
  • the configuration information for the persistent portal may be customized on a per-user basis.
  • the persistent portal for the mother may include links that reflect the mother's interest.
  • the "Clothing" icon may display a woman's outfit and may be linked to a retailer of women's clothing.
  • the configuration file may also include geographical information about the user and/or the Internet appliance.
  • the configuration file may include the city and state and/or the street address ofthe user.
  • the server may then be configured to customize the content ofthe persistent portal (or other non-persistent portions ofthe user interface) based on tlie geographic location ofthe user.
  • a "Restaurant" link may be linked to web pages for local restaurants that are near the user.
  • the configuration file may be stored in the Internet appliance's memory (e.g., in
  • the configuration file may be stored on a server which the browser accesses upon login or power-up.
  • the configuration file may be configured to limit the viewable web pages to a predetermined domain stored in the configuration file (e.g., the bank's domain).
  • the configuration file may contain information directing the browser to limit the viewable pages to a predete ⁇ nined set of domains (e.g., ones approved by the bank) or to a predetermined set of web pages stored on a specific server.
  • the browser may access may be particularly useful if the sponsor ofthe Internet appliance (i.e., the retailer in the previous examples) desires to censor certain content (e.g., pornography or a competitor's web sites).
  • the configuration file may indicate that the user input field in which users normally enter URLs (i.e., web page addresses) should not be displayed. This limits the possible displayable web pages to only those pages that are directly linked to icons or menu entries in the customized user interface. This may once again be useful in the bank lobby scenario.
  • additional information may be included as part ofthe configuration information.
  • information for cursor effects, overall "look-and-feel" ofthe interface, icon rollover effects, button press effects, and language information e.g., is the user a native English or Spanish speaker.
  • Figure 8 illustrates a flowchart depicting one embodiment of user interface construction application 400 (also referred to herein as the "design program").
  • a user interface designer executes the design program or user interface construction application 400 (step 510).
  • the design program may be configured to generate a default configuration file based upon one or more default selections (step 512).
  • the default configuration file may include a standard user interface with a title bar but without any advertising spaces or third party plug-ins.
  • the design program may be configured to wait until a particular user interface element is selected
  • step 514 For example, the designer may be presented with a palette of different user interface elements from which to select.
  • the design program may be configured to prompt the designer for the name of a corresponding graphics file which stores an image to be displayed as the icon (step 516).
  • the design program may be configured to prompt the designer for the size (e.g., in pixels) ofthe icon or element (step 518).
  • the design program may be configured to prompt the designer to select a location for the icon or element (step 520). For example, the user may be presented with an image ofthe user interface being designed and the user may be allowed to "drag-and-drop" the icon to a particular position.
  • the design program may be configured to prompt the designer for an action to be linked to the users selection or activation of the element (step 524). For example, the designer may select the power down function or the designer may select a particular web page address to be linked in response to the user's selection or activation ofthe element. If, however, the element is merely for aesthetic purposes, then step 524 may be bypassed.
  • the design program may be configured to prompt the designer to select one or more plug-ins and one or more corresponding messages to generate upon activation (step 528).
  • the browser and/or operating system may be configured to use "messaging" to invoke a certain plug-in or a selected action.
  • this step 528 may be bypassed. This process for configuring selected user interface elements may be repeated a number of times (step 532) until the designer has configured all ofthe user interface elements that were selected.
  • the design program also may be configured to prompt the designer to select one or more additional plug-in modules for incorporation into the customized user interface, and it may prompt the designer to specify position information for any visible aspects of the selected plug-in modules.
  • the design program may also be configured to prompt the designer for a default home page address (step 534) and for other attributes (step 536). For example, the design program may prompt the designer to enter the interval at which a particular displayed web page, advertisement, or frame is updated (e.g., for a stock ticker).
  • the design program may be configured to store the information into a configuration file that is accessible by web browser 410 (step 538). This process may be repeated for each different profile (step 540).
  • the design program may be configured to prompt the designer for a password or user id which may be used to correlate the completed configuration file with a particular user.
  • a custom program for interactively generating the graphical user interface and configuration file are preferred, a more simple approach may be to utilize an editor program (e.g., an XML editor) to create and edit the configuration file.
  • editor program e.g., an XML editor
  • Other types of graphical user interface tool kits may also be used in some embodiments.
  • FIG. 9 a flowchart of one method for implementing a customizable browser framework and for using a previously generated configuration file is shown.
  • tlie operating system boots (step 602) and prompts the user for a log in or a password (step 604).
  • the operating system then begins execution ofthe browser and passes the browser the appropriate user profile information (step 606).
  • the browser is then configured to read the configuration file that corresponds to the log in information or password (step 608).
  • the browser accesses and uses the graphics files pointed to by the configuration file (step 610).
  • the browser may also be configured to read executable information from plug-ins pointed to by configuration file (step 612).
  • the browser may then be configured to use this information to display the user interface (step 614).
  • the browser may be configured to further read the address of a default home page and display this together with the customized user interface (step 614), as specified by the configuration file.
  • the layout, visual appearance, and functionality ofthe browsers user interface may be dictated by the configuration file.
  • the browser may be configured to automatically contact the update server and download information to update the browser.
  • This information may include, but is not limited to, one or more ofthe following: the graphics files, the configuration files, browser plug-ins, the operating system, other applications, and the application browser itself (step 620).
  • the browser may be configured to automatically check a specific update server at each power up.
  • the browser may be configured to upload usage information while in the "idle" state (step 622).
  • this usage information may include web pages the user has visited, the amount of time the browser has been active, cursor movement information in response to particular web pages and/or advertisements, login information for each ofthe different user profiles, and other information.
  • cursor movement information in response to particular web pages and/or advertisements
  • login information for each ofthe different user profiles, and other information.
  • idle state may vary on an embodiment by embodiment basis, generally an idle state may be declared if a predetermined amount of time has elapsed since tlie browser has received any user input (e.g., a cursor movement or key stroke) or received data from a server.
  • the browser may also be configured to update cached web pages (e.g., based on the configuration file information) to speed browsing of pages that are likely to be viewed (step 624).
  • the configuration file may include information listing the five most commonly accessed web pages for the user.
  • the browser may then be configured to access these web pages and download their content periodically during idle periods (e.g., once per hour).
  • this may speed upthe browsers performance and reduce latency when the user selects a particular commonly accessed web page.
  • Figure 10 storing information generated by the browser user
  • the browser in response to the user logging on to the appliance or browser (step 650), the browser is configured to use the login information to read a corresponding configuration file (step 652). As previously described, the browser is configured to generate a corresponding user interface (step 654). The browser may be configured to determine whether or not the accessed profile is configured to allow tracking ofthe user's browsing activities (step 656). In some embodiments, some user profiles and corresponding configuration files may be configured to prevent the browser from tracking the user's browsing activities (step 657). This may be particularly advantageous when multiple users are using the browser, or when a particular user desires privacy for their browsing activities.
  • the web page address of each loaded web page may be stored (step 658). Additional information may also be stored, e.g., the time from the start of load to the completion of loading of tlie web page (step 660). Examples of other types of information that may be stored include the time from the completion of a web page load until the user performs a predetermined action (e.g., movement ofthe cursor, a mouse click, or a key stroke) (step 662). Similarly, the location ofthe user action (e.g., mouse click) and the type of action may be stored (step 664).
  • a predetermined action e.g., movement ofthe cursor, a mouse click, or a key stroke
  • the web browser may be configured to process the data (step 670). Examples of processing the data may include compressing the data or compiling statistics based on the data (step 670). The processed data may then be transmitted to a predetermined data server (step 672).
  • this configuration may allow a browser vendor to store usage information garnered from a large number of browser users. This usage information may be particularly valuable (e.g., it may be sold to advertisers).
  • the browser may be configured to signal a predetermined server in response to the user either logging in or accessing a particular web site.
  • the server may then be configured to send an indication to a telemarketing firm that the user is at home.
  • the telemarketing firm may thus avoid the wasted time spent calling people that are not home.
  • the telemarketing firm may then call, email, or send an instant message to the user.
  • the browser may be configured to send a signal to the server before disconnecting, thus allowing the server to inform the telemarketing firm that the user just disconnected from the Internet.
  • the user should still be at home and the phone line should be available for a call.
  • a similar configuration could be used for providing follow-up calls to users that have browsed certain web pages. For example, if the user browsed an automobile manufacturer's web site or a listing of homes for sale, the server may be configured to signal the appropriate realty agency or automobile company so that they may call the user while the user is browsing or immediately thereafter. This may be useful for performing web satisfaction surveys while the web browsing experience is still fresh in the user's mind.

Abstract

A customizable browser framework configured to simplify the task of generating application-specific, user-specific, and location-specific browser user interfaces is disclosed. The browser may be configured for execution on a specialized browser, or on a generic personal computer. Upon power-up or user login, the browser is configured to access a configuration file. The configuration file may be locked to prevent user access, and may stored locally or on a server. The browser is configured to use the information stored in the configuration file to generate a user interface that may have one or more of the following features: customizable icons and links, plug-ins, and persistent portals. The configuration file may include position information, size information, and linking information for one or more graphics files that are usable to generate the icons and other user interface features. The configuration file may be automatically updated from a remote server based on a predetermined update schedule and based on when the appliance is in an idle state.

Description

TITLE: PERSISTENT PORTAL FOR A BROWSER
Background of the Invention
1. Field of the Invention
The present invention generally relates to network browsers and graphical user interfaces. More particularly, the present invention relates to systems and methods for customizing graphical user interfaces.
2. Description ofthe Related Art
The Internet is an important resource for reference, research, browsing, online shopping, and e-mail. The Internet provides worldwide access to materials in a variety of subject areas. As used herein, the "Internet" is a decentralized global network connecting a large number of computers through standard communication and data protocols. One ofthe most well-known aspects ofthe Internet is the World Wide Web. As used herein, the "World Wide Web" is a plurality of web pages interconnected by a set of hypertext links and accessible to computers on the Internet. As used herein, a "web page" may include an information-bearing document or application which is accessible on the World Wide Web. Web pages may also include graphics and data files containing images, video clips, three-dimensional graphics, and audio information. A group of web pages sharing a particular address may be collectively referred to as a "web site".
Information accessible via the Internet such as web pages are typically accessed using a browser. A browser is typically a software application that generates a graphical user interface so that a user may access the information in a user-friendly manner. A number of different browsers are currently available, e.g., Microsoft's Internet Explorer, Netscape's Navigator, and Opera from Opera Software. Browsers have contributed to the recent growth in popularity ofthe Internet much in the same way that graphical user interfaces have contributed to the increased popularity of personal computers. The graphical user interface of browsers have allowed more people to access the Internet without specialized training and have spawned a deluge of new applications, including electronic banking and stock trading, interactive news, and online shopping. As web usage increases and as new users, unfamiliar with computers wish to use the Internet, a new trend toward Internet appliances has begun. Internet appliances is a term used to refer to any simplified computer or appliance that may be used to access the Internet and/or perform other networked functions. Thus, Internet appliances are also sometimes referred to as network appliances. In their first generation form, most Internet appliances are inexpensive limited-purpose personal computers. They typically have displays, keyboards, touchpads, and other input devices, but they may not have all ofthe processing power or peripherals that a tradition personal computer has. For example, some Internet appliances may be configured without diskette drives, CD- ROMs, or DVD-ROMs. Because they are designed solely for Internet access (i.e., web browsing and email), they may have less expensive components (e.g., less memory and smaller or no hard drives).
The large numbers of people now spending time browsing the Internet have encouraged merchants, service providers, and traditional retailers (collectively "retailers") to establish a presence on the Internet. The low hardware cost of Internet appliances is now allowing some retailers to provide customers with free Internet appliances and Internet access in exchange for the right to control some aspects ofthe user's browsing experience. These controlled aspects may include the ability to display particular advertisements and branding information while the user is browsing and the ability to set the default web page that appears whenever the user first turns on the appliance or accesses the web (sometimes referred to as a "home page"). Next-generation Internet appliances may take this trend further by integrating browsers and Internet access functions into traditional appliances (e.g., refrigerators) that perform specific functions using the Internet (e.g., automatically ordering groceries). Thus, Internet appliances may require customized user interfaces specifically tailored to the particular application and the particular needs of end users.
To implement these customized features, programmers have typically had to write new browser applications for each customization. While some software code may be reused, writing new code to change the appearance or functionality ofthe user interface is time consuming, expensive, and may require specialized expertise. For these reasons, there is a need for an improved method for customizing the user interface of browsers. Another particularly desirable feature for retailers interested in this market model is the ability to effectively force users to view advertisements. From the retailer's point of view, since they are paying for the hardware and software (and possibly the Internet connection), the retailer wants to ensure that the user views the advertisements. This is currently a problem because end-user applications are available to filter out banner advertisements. If an end user were to download and use one ofthe filtering plug-ins, the retailer's investment in the browser and appliance could be undermined. Similarly, it may be particularly advantageous for the retailer to control certain aspects ofthe user interface in addition to or in lieu of advertising.
Yet another potentially desirable feature for retailers interested in advertising using the Internet would be the ability to more accurately track consumer's responses to particular web pages and/or advertisements. As the amount spent on Internet advertisement increases, demand for this feature may increase.
Summary of the Invention
The problems mentioned above are at least in part solved by a system and method that implements a customizable framework for a graphical user interface based on a configuration file storing information that is usable to generate a customized user interface. The configuration file may be configured to be easily updateable via a remote server without any required interaction from the end user. In some embodiments, each end user may have their own customized configuration data set that may be automatically updated and may be based on personal information, user-specific browsing history, and/or user-specific appliance usage. Please note that as used herein, the terms "configuration file" and "configuration information" are used interchangeably. Configuration file is a broad term meant to encompass all data storage mechanisms capable of storing information for use in generating the graphical user interface. For example, one or more individual data arrays, strings, variables, memory locations, or traditional files within a directory structure may all be considered to fall within the definition of "configuration file" and "configuration information" as the terms are used herein.
In one embodiment, the method may be embodied as a browser software program that is stored on a computer-readable medium (e.g., diskette, CD-ROM, DVD-ROM, tape, RAM, ROM). The browser may include a plurality of instructions that are configured to access a configuration file upon start-up (e.g., power-up, application start, or user login). The configuration data set may include, inter alia, data defining a customized user interface appearance and functionality. The customized user interface may include one or more user interface objects (also referred to as controls or user interface elements), and the configuration data set may include specific data corresponding to each ofthe customized or customizable user interface objects. For example, an object may be a graphical icon or menu item that is linked to a particular function or web site. The browser may be configured to use the information stored in the configuration file to generate and display a customized user interface on a display device. The browser may be further configured to monitor user interaction with the user interface objects and respond to user interaction with the objects. For example, the browser may be configured to access a particular web page that is linked to a particular icon that the user has selected (i.e., clicked on). In some embodiments the browser may be configured to prompt the user for a password. The browser may then be configured to use this password to select a particular configuration from a number of different configuration files, wherein each different configuration file may correspond to a different user or user profile. Advantageously, this may allow the browser to efficiently support customized user interfaces for multiple users. The configuration file may contain pointers or links to graphics files that contain the data needed to generate icons and other visible and audio portions ofthe user interface. In some embodiments, multiple configuration files may share some or all of he graphics files. The configuration file may also include size and position information that is needed by the browser (or an underlying operating system) to position and render the visual information in the graphics files as part ofthe user interface. The configuration file may further include linking information describing which functional modules (e.g., accesses to a particular web page) should be invoked in response to a particular user interface object being selected by said user.
In addition to position, size, and linking information for the graphics files, the configuration file may also include similar information necessary to invoke one or more browser plug-in modules (e.g., audio or digital video stream players). For example, one browser plug-in may be an electronic wallet module. The electronic wallet module may be passed information by the browser (or operating system) based on the information provided by the user when logging in (e.g., thus requiring the user to only enter their password once). In some embodiments, the configuration file may further include features such as a default home page address and default search engines that are also customizable and updateable via a remote server.
Advantageously, the use ofthe configuration file allows the browser to efficiently update the configuration file. For example, the browser may be configured to access a server on a periodic basis (e.g., at each power up, application start, log-in, or every hour) to update the configuration file. These updates may include updated linking information, new graphics files, new position and size information, and new plug-in modules and stand alone applications for additional functionality. The browser may be configured to wait until a predetermined idle state is reached before performing an update. In some embodiments, the user may be locked out from modifying some or all ofthe information in the configuration file. Depending upon the implementation and security needs, one or more ofthe graphics files and/or configuration files may reside on a server instead of residing locally on the Internet appliance/computer system executing the browser application. In some embodiments, the browser may be configured to convey information to a predetermined server (or servers) about a user's actions while executing the browser, wherein the server is configured to update the browser's configuration file based on the information about the user's actions. Similarly, the server or servers may be configured to update the configuration file based on geographical information stored in the configuration file (e.g., the user's address) or provided by tlie end user. This may advantageously enable location-specific customized user interfaces. The update may be configured to support "checkpoints", which allow the update process to be restarted from a checkpoint instead ofthe beginning ofthe update in response to the interruption ofthe update process (e.g., to devote more resources to user activities). Since the update process may entail downloading entire new applications, supporting checkpoints may reduce the time needed to complete an interrupted update. In some embodiments, the data for the update is downloaded while the appliance or browser is in an idle mode, but the data may not be used to modify the configuration file (i.e., configuration information) until the next time the browser or appliance is started up (e.g., after a sleep mode or power down).
An Internet appliance configured to execute a customizable browser is also contemplated. In one embodiment the appliance may include a display device (e.g., an LCD panel), a user input device (e.g., a keyboard), a network communications device (e.g., a modem), and a memory (e.g., a flash memory) configured to store tlie browser application and the configuration file, and one or more processors configured to execute the browser application. The processors are configured to receive data from the input device, the network communications device, and the memory, and are configured to output data to the display device and the network communications device. The memory may store an operating system (e.g., Linux, a Windows variant, or other operating system), the browser program, and the user interface configuration file. Tlie operating system may be configured to automatically execute the browser program (e.g., upon power up), and the browser program may be configured to automatically read the configuration file upon execution. As noted above, the browser may be configured to use the information in the configuration file to define the appearance and functional attributes of a customized user interface for the browser. In some embodiments, the Internet appliance may include additional hardware (e.g., a thumb or retinal scanner, or a microphone) which the browser may be configured to use to automatically select one of a plurality of configuration files. Advantageously, this may improve the speed ofthe login process and also improve security.
These and other benefits and advantages ofthe present invention shall become apparent from the detailed description ofthe invention presented below in conjunction with the figures accompanying the description.
Brief Description of the Drawings
A better understanding ofthe present invention may be obtained when the following detailed description of the preferred embodiment is considered in conjunction with the following drawings, in which:
Figure 1 is a network diagram of one embodiment of a wide area network which is suitable for implementing various embodiments;
Figure 2 is an illustration of one embodiment of a typical computer system which is suitable for implementing various embodiments;
Figure 2A is an illustration of one embodiment of an Internet appliance;
Figure 3 is an illustration of one embodiment of a sample web browser user interface; Figure 4 is an illustration of another specific embodiment of a web browser user interface;
Figure 5 is an illustration of yet another specific embodiment of a web browser user interface;
Figure 6 is a block diagram illustrating one embodiment of a customizable framework for a browser user interface;
Figure 7 is a block diagram illustrating one embodiment of a configuration file usable to implement a customizable browser framework;
Figure 8 is a flowchart of one embodiment of a method for generating a configuration file usable to implement a customizable browser framework;
Figure 9 is a flowchart of one embodiment of a method for using the configuration file and customizable framework in a browser; and Figure 10 is a flowchart illustrating one method for storing data generated by browser users. While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will herein be described in detail. It should be understood, however, that the drawings and detailed description thereto are not intended to limit the invention to the particular form disclosed, but on the contrary, the intention is to cover all modifications, equivalents and alternatives falling within the spirit and scope ofthe present invention as defined by the appended claims. Please also note that the headings used herein are for organizational purposes only and are not meant to have any effect on the interpretation ofthe claims or the detailed description.
Detailed Description of Several Embodiments Before describing a number of different embodiments in greater detail, some information regarding networks, personal computers, and Internet appliances is discussed.
Figure 1: wide area network
Figure 1 illustrates one embodiment of a wide area network (WAN) 102. WAN 102 is a network that spans a relatively large geographical area. The Internet is one example of a WAN. WAN 102 typically includes a plurality of computer systems which are interconnected through one or more networks. Although one particular configuration is shown in Figure 1, Hie WAN 102 may include a variety of heterogeneous computer systems and networks which are interconnected in a variety of ways and which run a variety of software applications. * One or more mainframe computer systems 120 may also be coupled to WAN 102. As shown, mainframe 120 may be coupled to a storage device or file server 124 and mainframe terminals 122a, 122b, and 122c. The mainframe terminals 122a, 122b, and 122c may access data stored in the storage device or file server 124 coupled to or included in the mainframe computer system 120. WAN 102 may also include computer systems 112b, personal digital assistants (PDAs) 128, and Internet appliances 126 and 113 (e.g., a refrigerator configured to order groceries using the Internet) which are connected to WAN 102 individually. For example, WAN 102 may include computer systems which are geographically remote and connected to each other via the Internet.
One or more local area networks (LANs) 104 may be coupled to WAN 102. LAN 104 is a network that spans a relatively small area. Typically, a LAN 104 is confined to a single room, floor, building or group of buildings. Each node (i.e., individual computer system or device) on LAN 104 preferably has its own CPU with which it executes programs, and each node is also able to access data and devices anywhere on LAN 104. Thus LAN 104 allows many users to share devices (e.g., printers) as well as data stored on file servers. LAN 104 may be characterized by any of a variety of types of topology (i.e., the geometric arrangement of devices on the network), of protocols (i.e., the rules and encoding specifications for sending data, and whether the network uses a peer-to- peer or client/server architecture), and of transmission media (e.g., twisted-pair wire, coaxial cables, fiber optic cables, radio waves). LAN 104 typically includes a plurality of interconnected computer systems and optionally one or more other devices: for example, one or more workstations 110a, one or more personal computers 112a, one or more laptop or notebook computer systems 114, one or more server computer systems 116, and one or more network printers 118. As illustrated in Figure 1, LAN 104 may include one of each of computer systems 110a, 112a, 114, and 116, and one printer 118. LAN 104 may be coupled to other computer systems and/or other devices and/or other LANs 104 through the WAN 102. Figure 2: typical computer system
Figure 2 illustrates a typical computer system 150 which is suitable for implementing various embodiments ofthe system and method for creating a customizable browser as described in greater detail below. Computer system 150 typically includes components such as a CPU 152 with an associated memory medium 160. The memory medium may store program instructions for computer programs, wherein the program instructions are executable by the CPU 152 (or more specifically, by tlie one or more processors within CPU 152). The computer system 150 may further include a display device such as a monitor 154 (e.g., a liquid crystal display or "LCD", a cathode ray tube display or "CRT", a head mounted display, or a projection display), an alphanumeric input device such as a keyboard 156, and a directional input device such as a mouse 158. Alternatively, keyboard 156 and/or mouse 158 may be replaced or supplemented with a microphone and speech recognition hardware and/or software, a video camera, and/or a track pad. The computer system 150 may be operable to execute the computer programs to implement creation of a customizable framework for a browser to be used with the World Wide Web as described herein.
The computer system 150 preferably includes memory medium 160 on which computer programs according to various embodiments may be stored. The term "memory medium" is intended to include an installation medium, e.g., a CD-ROM, or floppy disks, a computer system memory such as DRAM, SRAM, EDO RAM, Rambus RAM, etc., or a non-volatile memory such as a magnetic media, e.g., a hard drive, or optical storage. The memory medium may include other types of memory as well, or combinations thereof. In addition, the memory medium may be located in a first computer in which the programs are executed, or may be located in a second different computer which connects to the first computer over a network. In the latter instance, the second computer provides the program instructions to the first computer for execution. Also, the computer system 150 may take various forms, including a traditional personal computer system, an Internet appliance as previously discussed, a mainframe computer system, a workstation, personal digital assistant (PDA), television system or other device. In general, the term "computer system" may be broadly defined to encompass any device having a processor which executes instructions from a memory medium. The memory medium preferably stores a software program or programs for creating a customizable framework for a browser as described herein. The software ρrogram(s) may be implemented in any of various ways, including procedure-based techniques, component-based techniques, and/or object-oriented techniques, among others. For example, the software program may be implemented using ActiveX controls, C++ objects, JavaBeans, Microsoft Foundation Classes (MFC), Java, traditional programs, or other technologies or methodologies, as desired. A CPU, such as the host CPU 152, executing code and data from the memory medium includes a means for creating and executing the software program or programs according to the methods and/or block diagrams described below.
Figure 2A: sample Internet appliance Figure 2A illustrates one embodiment of an Internet appliance 180. In this embodiment, Internet appliance
180 is an iBrow™ brand Internet Appliance from Merinta Corporation. Appliance 180 may comprise display device 154 (e.g., a 10" LCD display), CPU 152, and keyboard 156. In some embodiments, keyboard 156 may be wireless (e.g., infrared) and may include an integrated pointing devices such as a track ball, mouse, or joystick. Appliance 180 may also comprise speakers 170A-B, and a video camera 172. In some embodiments, appliance 180 may further comprise indicators 174 and additional buttons (e.g., power button 176). While each configuration may vary, in one embodiment CPU 152 may comprise one or more universal serial bus connectors, a 56k v.90 internal modem, a microphone input, and amplified headphone output. CPU 152 may also be configured with an external volume control, external contrast control, an AC power adapter, dual RJ-11 phone jacks for line-in and telephone- out, and both flash memory and SDRAM (synchronous dynamic random access memory). Indicators 174 may be configured to inform users of power up status or other information.
Other optional hardware may be included with Internet appliance 180, for example, a bar code scanner (for user identification and product identification), a smart card reader (for user identification), a Java™ ring interface (for user identification), camera (for user identification and for video conferencing), a retinal scanner (for user identification), a thumb print scanner (for user identification), a microphone (for voice recognition and speech recognition), or a voice synthesizer (for text-to-speech).
Figure 3: sample web browser user interface
Figure 3 illustrates one embodiment of a web browser user interface 300. At the top ofthe web browser user interface 300, several toolbars are represented: a sizing toolbar 303, a title bar 304, a navigation toolbar 305, a URL toolbar 306, and a persistent portal 307. Below the persistent portal 307, a main content section 301 is shown. Scroll bars 302A-B may be found to the right and also below the main content section 301. At the bottom ofthe web browser user interface 300, additional toolbars are represented: a status toolbar 308 and a live feed toolbar 309. To the right ofthe status toolbar 308 and the live feed toolbar 309, an advertisement 310 is shown. Note, advertisement 310 may be configured to display a different image periodically (e.g., a new image every 15 seconds or every 0.10 seconds). This allows animation within the advertisement and allows different advertisements to be displayed to the end user. Logo bar 312 may be implemented to display a retailer's or manufacturer's logo. Logo bar 312 may also be animated. Depending upon the exact implementation, logo bar 312 may also be persistent, i.e., ever-present regardless of what the user is doing, which page the user is browsing, and regardless of which applications the user is executing.
Elements ofthe sizing toolbar 303 may include, for example, a logo, a minimize button, a maximize button, and a close button (not shown). The title bar 304 may include the name of the browser, the name of a web page currently being viewed, or the name of a sponsor of the web browser (not shown) . Elements of the navigation toolbar 305 may include a back button, a forward button, a stop button, a reload button, a home button, a print button, a font button, a window button, a help button, a favorites button, a search button, and an e-mail button (not shown). The URL toolbar 306 may include an entry box into which a user may enter a URL address, and a GO button to load the entered URL address (not shown). Elements ofthe persistent portal 307 may include labeled buttons, tabs, or other links, along with a logo ofthe sponsor ofthe web browser (not shown).
The main content section 301 displays the contents of web pages and may change based on the choice of button that the user selects (i.e., from the navigation toolbar 305 or from the persistent portal 307) or based on the URL address that the user enters in the URL toolbar 306. The scroll bars 302A-B allow the user to view consecutive lines of data on the display screen, both vertically and horizontally. As used herein, "scroll" means that once the screen is full, each new line appears at the edge ofthe screen and all other lines move over one position. For example, when you scroll down, each new line appears at the bottom ofthe screen and all the other lines move up one row, so that the top line disappears. Vertical scrolling refers to the ability to scroll up or down. Horizontal scrolling refers to the ability to scroll left or right. The status toolbar 308 may be configured to indicate the current status ofthe browser. For example, status toolbar 308 may indicated what percentage o the current page has been received across the network connection (e.g., "50% complete) or the address that is currently being accessed (e.g., connecting to "www. merinta.com..."). The live feed toolbar 309 may be configured to display data that is periodically updated. Examples of content that may be displayed in the live feed toolbar 309 includes a stock ticker, sports scores, and news headlines. This content may be automatically updated on a periodic basis (e.g., every five minutes). Please note that other types of toolbars, portals, and content areas may also be implemented using the customizable framework disclosed herein. The examples cited herein are merely for illustrative purposes and are not meant to be limiting.
The advertisement 310 may be a banner advertisement that links to a particular web page when the advertisement area is clicked on by the user. The banner advertisement may be animated to attract the viewer's interest, and the advertisement may change periodically (e.g., once every minute) or based on the user's browsing activity.
Specific examples ofthe various elements of sample browser user interfaces 300 are shown in Figures 4 and 5.
Figures 4-5: specific browser user interface embodiments
Figure 4 illustrates a specific embodiment of web browser user interface 300. Figure 5 illustrates another specific embodiment of web browser user interface 300. As these figures illustrate, the visual appearance of user interface 300 may change dramatically based on the different customizations made. Examples include the different organization of icons, different positions for the toolbars, different fonts, and different titles in title bars 304. In addition to changing the visual appearance of user interface 300, functional changes may also be implemented. For example, the web pages linked to the different icons in persistent portal 307 may be customized. A bank providing an Internet appliance to its customers may wish to have links as illustrated in Figure 4 (e.g., to pages that perform electronic bill payment, loan application pages, or account information), while a retailer such as Amazon.com may wish to have links as illustrated in Figure 5 (e.g., to pages that sell music and videos, books, and travel reservations). In some embodiments, one or more ofthe toolbars such as persistent portal 307 may be fixed (i.e., the user cannot change, hide, or close the toolbars). In other embodiments, users may be allowed to move tlie toolbars around, resize them, or even hide them. In some embodiments users may also be allowed to select the icons and the web pages to which tlie icons link.
Figure 6: customizable browser framework embodiment
Turning now to Figure 6, a block diagram illustrating one embodiment of a framework for a customizable browser is shown. As the figure illustrates, a user interface construction application 400 is used to generate one or more configuration files 402A-402B, These configuration files store, inter alia, information on linking, position, size, color, geometry, graphic image, behavior, associated applications, and fonts. This information is useable by web browser 410 to generate a customized user interface. The configuration files 402A-402B may include linking and position information for one or more graphics files 404A-404B, one or more third party modules 406, and one or more Internet appliance software applications 408. Advantageously, web browser 410 may be configured to access one or more configuration files 402A-402B to generate a customized user interface. As shown in the Figure, web browser 410 is also configured to interact with operating system 412, which is responsible for managing and interfacing with the hardware ofthe computer (or Internet appliance). In some embodiments, user interface construction application 400 may be configured as a stand alone software application that is configured to operate on a computer system (e.g., a personal computer). In other embodiments, user interface construction application 400 may be bundled with web browser 410 as a restricted access feature available only to users with certain access privileges. User interface construction application 400 may be configured with its own graphical user interface that allows user interface designers the ability to "drag-and- drop" icons or graphical images representing different user interface features to generate a user interface layout for web browser 410. User interface construction application 400 may then be configured to store the customized user interface information into one or more configuration files 402A-402B. In some embodiments, configuration files 402A-402B may actually include the graphical information used to generate the icons and images that are incorporated as part ofthe customized user interface. However, in other embodiments (as shown in Figure 6) configuration files 402A-402B may merely include links (e.g., file name references or pointers) to the appropriate icon and/or graphics files 404A-404B. Configuration files 402A-402B may also include subroutines or objects that call third party modules 406. Examples of these third party modules include streaming video clip players, streaming audio players, three-dimensional graphics decompression software, encryption software and electronic wallet modules. Configuration files 402A-B may further include software that calls, executes or invokes additional software applications 408. Some possible examples of such additional Internet appliance software applications include email programs, chat programs, calculator programs, word processors, news readers, telephone and video phone applications, and computer games. For example, tlie user interface construction application 400 may link a particular icon that is configured to invoke an email composition application in response to the user clicking on the particular icon. In some embodiments, configuration files 402A-B may also include links to particular functions within operating system 412. For example, in some customized user interfaces, a particular icon in the graphics user interface for web browser 410 may be linked to a power down or sleep function implemented within operating system 412.
Advantageously, each configuration file 402A-402B may be linked to one or more particular users or user profiles. For example, web browser 410 and/or operating system 412 may be configured to prompt the user for a password or user name. Web browser 410 may be configured to use this information to select a particular configuration file corresponding to that user name or password. As previously noted, the customizable framework illustrated in Figure 6 may be used within a browser configured to be executed on a personal computer or on an Internet appliance. Please note that Figure 6 merely illustrates one possible embodiment for this customizable framework. As those skilled in that art will appreciate, additional features may be incorporated into this framework. For example, graphics files 404A-404B may be supplemented by audio files that are configured to play customized audio clips or sounds in response to particular user actions.
Figure 7: configuration file embodiment Turning now to Figure 7, one embodiment of configuration file 402A is shown. In this embodiment, configuration file 402A comprises a plurality of different types of information including corresponding password/user id information 420. This information may be used by the web browser or operating system to select which particular configuration file will be used for a particular user. In some embodiments, a particular configuration file may be designated as the default configuration file for any new users that do not have a password or user id. This information may also be stored with the corresponding password/user id information 420.
Configuration file 402A may also comprise general user interface information 422. Examples of this type of information may include the number of tool bars to be displayed, and whether or not the tool bars may be used by the user or hidden by the user. Configuration file 402A may also comprise specific information for each tool bar to be displayed. For example, configuration file 402A may include title bar information 424 that describes position and function information about the title bar (see item 304 in Figure 3). Title bar information 424 may include position information 426 (including minimum and maximum X and Y coordinates in screen pixels), color information 428, font information 430 (including typeface, font size, font attributes such as underlining, and font color), and information usable to link to a graphics file 432. The graphics file link information may be used to display an image (e.g., a logo) on the title bar. Note, the information described in the Figure is merely for explanatory purposes, and additional information may be included according to a particular embodiment. For example, links to graphics file information 432 may further include position information and gamma correction information.
As the Figure illustrates, configuration file 402A may also include information for an options tool bar (or persistent portal) 434. In addition to the position, color, font, and graphics file information (as described in connection with title bar information 424), icon-specific information may also be included. For example, information corresponding to a first icon 436 may also be included. In addition to the position, color, font, and graphics file information for the icon, a link or link information describing one or more associated web pages may also be included (see item 440). In some embodiments, as previously noted, a second set of information for a second icon 438 may include link information to the operating system (see item 442 in the figure). This information may be used to invoke an operating system function such as powering down the computer or Internet appliance. An arbitrary number of additional sets of information may also be included. Furthermore, additional information for each icon or control may also be included. For example, the icons may support mouse-over or rollover effects (e.g., changing appearance in response to the cursor moving over the icon) or animation. In another embodiment, each icon may comprise multiple images, and one ofthe multiple images is selected in response to a particular user logging on. For example, there may be a large and a small set of icons, wherein the small set of icons are used to maximize the size ofthe main content area 450, while the larger set may be more suitable for users that have difficulty seeing smaller icons.
Configuration file 402A may also include information regarding the content area (see item 450 in the Figure), information regarding advertisements to be displayed (see item 460 in the Figure), and live feed tool bar information 470. In some embodiments, the advertisement information 460 and/or the live feed tool bar information 470 may include links to one or more web servers for content and advertisements (see items 462 and 472, respectively, in the Figure).
As previously noted, configuration file 402A may further include information necessary to invoke one or more plug-ins 480. This information may vary depending upon the plug-in being invoked, e.g., position information. As described in greater detail below, some embodiments of web browser 410 may be configured to store information regarding users' activities while the browser is executing. In some embodiments, configuration file 402A may include such data, or may include a pointer to a data file generated using such data (see item 490 in the Figure). In yet other embodiments, a plurality of pointers 490 may be included to data files with different types of user information stored therein.
Advantageously, in some embodiments the configuration file may be used to indicate to the browser which elements ofthe user interface should remain constant regardless ofthe user's actions. For example, in some embodiments persistent portal 434 may be configured to remain on the display device regardless of which content the user is viewing. As noted in the Description ofthe Related Art section ofthe application, this may be a particularly useful feature for retailers seeking to generate high traffic volumes for e-commerce web sites. The example user interface of Figure 5 illustrated a series of icons in the persistent portal labeled "Clothing", "Banking", "Health", "News", "Music", "Movies", and "Food". As the names of these icons indicates, each icon may be linked to a particular e-commerce or advertising site. Advantageously, the retailer that provided the customized browser (and possibly the Internet appliance) may configure each icon to link to a particular site ofthe retailer's choice (e.g., the retailer's own web pages or the web pages of a third party that has agreed to pay the retailer a commission based on the volume generated by the persistent portal links). In some embodiments, persistent portal 434 may be configured such that the user is prevented from obscuring the portal with any windows. For example, the user interface may be configured with a pop-up calculator that may be dragged around the screen. However, the user interface may be configured such that the calculator may not be dragged over the region that defines the persistent portal. This may be a desirable feature for some retailers. Similarly, the user interface may be configured to prevent users from obscuring other toolbars, e.g., advertisement bar 310.
Unlike traditional browsers, the persistent portal may be displayed regardless of what function the user is performing (e.g., drafting an email message), and may be configured to change periodically as updated by a server (e.g., the server may update the browser's configuration file automatically). In some embodiments, as described in greater detail below, the browser may be configured to send usage information (e.g., information about which web pages were visited, for how long, content information, information about which parts ofthe screen the user's cursor is on or travels across, user presence information, scrolling behavior, etc.) back to the advertisement server or to another server (e.g., one operated by the retailer or browser developer). The server may then be configured to analyze the data to determine usage patterns and then change the configuration ofthe persistent portal to have links that better target the user's interests. As with other customization information stored in the configuration file, the configuration information for the persistent portal may be customized on a per-user basis. Thus, if an Internet appliance is used by an entire family, the persistent portal for the mother may include links that reflect the mother's interest. For example, the "Clothing" icon may display a woman's outfit and may be linked to a retailer of women's clothing. Similarly, when the father logs onto the appliance, the same icon in the persistent portal may change to display a "Golf icon comprising a golf ball, and the icon may be linked to a golfing retailer's web site based on the father's frequent visits to golf web pages. Similarly, for a child the persistent portal icon may be linked to an auction site for comic books. In some embodiments, the configuration file may also include geographical information about the user and/or the Internet appliance. For example, the configuration file may include the city and state and/or the street address ofthe user. The server may then be configured to customize the content ofthe persistent portal (or other non-persistent portions ofthe user interface) based on tlie geographic location ofthe user. Thus a "Restaurant" link may be linked to web pages for local restaurants that are near the user. In some embodiments the configuration file may be stored in the Internet appliance's memory (e.g., in
RAM, flash memory, or in a hard drive). In other embodiments the configuration file may be stored on a server which the browser accesses upon login or power-up.
Additional information may also be stored in the configuration file, depending upon the exact implementation. For example, if an Internet appliance is configured to be used in the lobby of a bank, the configuration file may be configured to limit the viewable web pages to a predetermined domain stored in the configuration file (e.g., the bank's domain). Similarly, the configuration file may contain information directing the browser to limit the viewable pages to a predeteπnined set of domains (e.g., ones approved by the bank) or to a predetermined set of web pages stored on a specific server. These limitations on which web pages the browser may access may be particularly useful if the sponsor ofthe Internet appliance (i.e., the retailer in the previous examples) desires to censor certain content (e.g., pornography or a competitor's web sites). Similarly, the configuration file may indicate that the user input field in which users normally enter URLs (i.e., web page addresses) should not be displayed. This limits the possible displayable web pages to only those pages that are directly linked to icons or menu entries in the customized user interface. This may once again be useful in the bank lobby scenario.
In other embodiments, additional information may be included as part ofthe configuration information. For example, information for cursor effects, overall "look-and-feel" ofthe interface, icon rollover effects, button press effects, and language information (e.g., is the user a native English or Spanish speaker).
Figure 8: generating the configuration file
Turning now to Figure 8, one embodiment of a method for generating a configuration file usable in a customizable browser framework is shown. Figure 8 illustrates a flowchart depicting one embodiment of user interface construction application 400 (also referred to herein as the "design program"). First, a user interface designer executes the design program or user interface construction application 400 (step 510). The design program may be configured to generate a default configuration file based upon one or more default selections (step 512). For example, the default configuration file may include a standard user interface with a title bar but without any advertising spaces or third party plug-ins. Next, the design program may be configured to wait until a particular user interface element is selected
(step 514). For example, the designer may be presented with a palette of different user interface elements from which to select. Next, the design program may be configured to prompt the designer for the name of a corresponding graphics file which stores an image to be displayed as the icon (step 516). Next, the design program may be configured to prompt the designer for the size (e.g., in pixels) ofthe icon or element (step 518). Next, the design program may be configured to prompt the designer to select a location for the icon or element (step 520). For example, the user may be presented with an image ofthe user interface being designed and the user may be allowed to "drag-and-drop" the icon to a particular position.
If the new icon/element can be activated (e.g., selected) by the browser user (step 522), then the design program may be configured to prompt the designer for an action to be linked to the users selection or activation of the element (step 524). For example, the designer may select the power down function or the designer may select a particular web page address to be linked in response to the user's selection or activation ofthe element. If, however, the element is merely for aesthetic purposes, then step 524 may be bypassed.
If the element is tied to a plug-in (step 526), then the design program may be configured to prompt the designer to select one or more plug-ins and one or more corresponding messages to generate upon activation (step 528). For example, the browser and/or operating system may be configured to use "messaging" to invoke a certain plug-in or a selected action. However, if the element or icon is not tied to a plug-in, this step 528 may be bypassed. This process for configuring selected user interface elements may be repeated a number of times (step 532) until the designer has configured all ofthe user interface elements that were selected. The design program also may be configured to prompt the designer to select one or more additional plug-in modules for incorporation into the customized user interface, and it may prompt the designer to specify position information for any visible aspects of the selected plug-in modules. The design program may also be configured to prompt the designer for a default home page address (step 534) and for other attributes (step 536). For example, the design program may prompt the designer to enter the interval at which a particular displayed web page, advertisement, or frame is updated (e.g., for a stock ticker). Once all ofthe selected information is completed, the design program may be configured to store the information into a configuration file that is accessible by web browser 410 (step 538). This process may be repeated for each different profile (step 540). As previously noted, the design program may be configured to prompt the designer for a password or user id which may be used to correlate the completed configuration file with a particular user.
While a custom program for interactively generating the graphical user interface and configuration file are preferred, a more simple approach may be to utilize an editor program (e.g., an XML editor) to create and edit the configuration file. Other types of graphical user interface tool kits may also be used in some embodiments.
Figure 9: using the configuration file
Turning now to Figure 9, a flowchart of one method for implementing a customizable browser framework and for using a previously generated configuration file is shown. In this embodiment, in response to the user first powering up the Internet appliance (step 600), tlie operating system boots (step 602) and prompts the user for a log in or a password (step 604). The operating system then begins execution ofthe browser and passes the browser the appropriate user profile information (step 606). The browser is then configured to read the configuration file that corresponds to the log in information or password (step 608). Next, the browser accesses and uses the graphics files pointed to by the configuration file (step 610). The browser may also be configured to read executable information from plug-ins pointed to by configuration file (step 612). The browser may then be configured to use this information to display the user interface (step 614). As noted above, the browser may be configured to further read the address of a default home page and display this together with the customized user interface (step 614), as specified by the configuration file. As noted above, the layout, visual appearance, and functionality ofthe browsers user interface may be dictated by the configuration file. Once the user interface is displayed, the browser may operate in a normal manner by displaying web pages that are selected by the user (step 615). In response to the browser and/or operating system entering into a predefined "idle" state (step 616), and if sufficient time has passed since a previous update, or if there is an update available on a specified update server (step 618), the browser may be configured to automatically contact the update server and download information to update the browser. This information may include, but is not limited to, one or more ofthe following: the graphics files, the configuration files, browser plug-ins, the operating system, other applications, and the application browser itself (step 620). In some embodiments, the browser may be configured to automatically check a specific update server at each power up. Furthermore, in some embodiments, the browser may be configured to upload usage information while in the "idle" state (step 622). For example, this usage information may include web pages the user has visited, the amount of time the browser has been active, cursor movement information in response to particular web pages and/or advertisements, login information for each ofthe different user profiles, and other information. While the definition of "idle" state may vary on an embodiment by embodiment basis, generally an idle state may be declared if a predetermined amount of time has elapsed since tlie browser has received any user input (e.g., a cursor movement or key stroke) or received data from a server.
In yet other embodiments, the browser may also be configured to update cached web pages (e.g., based on the configuration file information) to speed browsing of pages that are likely to be viewed (step 624). For example, the configuration file may include information listing the five most commonly accessed web pages for the user. The browser may then be configured to access these web pages and download their content periodically during idle periods (e.g., once per hour). Advantageously, this may speed upthe browsers performance and reduce latency when the user selects a particular commonly accessed web page.
Figure 10: storing information generated by the browser user
Turning now to Figure 10, one embodiment of a method for storing data based on a user's browsing activities is shown. In one embodiment, in response to the user logging on to the appliance or browser (step 650), the browser is configured to use the login information to read a corresponding configuration file (step 652). As previously described, the browser is configured to generate a corresponding user interface (step 654). The browser may be configured to determine whether or not the accessed profile is configured to allow tracking ofthe user's browsing activities (step 656). In some embodiments, some user profiles and corresponding configuration files may be configured to prevent the browser from tracking the user's browsing activities (step 657). This may be particularly advantageous when multiple users are using the browser, or when a particular user desires privacy for their browsing activities. If, however, the user profile allows tracking (or the user consents to tracking via a "click-through" agreement), then the web page address of each loaded web page may be stored (step 658). Additional information may also be stored, e.g., the time from the start of load to the completion of loading of tlie web page (step 660). Examples of other types of information that may be stored include the time from the completion of a web page load until the user performs a predetermined action (e.g., movement ofthe cursor, a mouse click, or a key stroke) (step 662). Similarly, the location ofthe user action (e.g., mouse click) and the type of action may be stored (step 664). After a predetermined amount of time and after the browser is in its idle state (step 668), the web browser may be configured to process the data (step 670). Examples of processing the data may include compressing the data or compiling statistics based on the data (step 670). The processed data may then be transmitted to a predetermined data server (step 672). Advantageously, this configuration may allow a browser vendor to store usage information garnered from a large number of browser users. This usage information may be particularly valuable (e.g., it may be sold to advertisers).
Please note that although the flowcharts in the figures are detailed, they axe meant for explanatory purposes only and that additional steps may be added or that steps may be combined or performed in a different sequence, depending upon the exact implementation. In some embodiments, the browser may be configured to signal a predetermined server in response to the user either logging in or accessing a particular web site. The server may then be configured to send an indication to a telemarketing firm that the user is at home. The telemarketing firm may thus avoid the wasted time spent calling people that are not home. The telemarketing firm may then call, email, or send an instant message to the user. For users that only have one traditional phone line for computer and voice (i.e., instead of a DSL or cable modem configuration), the browser may be configured to send a signal to the server before disconnecting, thus allowing the server to inform the telemarketing firm that the user just disconnected from the Internet. Advantageously, the user should still be at home and the phone line should be available for a call. A similar configuration could be used for providing follow-up calls to users that have browsed certain web pages. For example, if the user browsed an automobile manufacturer's web site or a listing of homes for sale, the server may be configured to signal the appropriate realty agency or automobile company so that they may call the user while the user is browsing or immediately thereafter. This may be useful for performing web satisfaction surveys while the web browsing experience is still fresh in the user's mind.
Although the system and method of the present invention have been described in connection with several embodiments, the invention is not intended to be limited to the specific forms set forth herein, but on the contrary, it is intended to cover such alternatives, modifications, and equivalents as may be reasonably included within the spirit and scope ofthe invention as defined by the appended claims.

Claims

What is claimed is:
1. A method for generating a customized persistent presence in a graphical user interface, said method comprising: displaying a graphical user interface, wherein said graphical user interface comprises a first region defined as a persistent portal; displaying one or more user interface objects in the persistent portal; preventing users, other applications, and operating systems from closing, obscuring, or changing the one or more user interface objects and the persistent portal; storing information about user interaction with the graphical user interface; and automatically changing the user interface objects in the persistent portal based on the stored information.
2. The method as recited in claim 1, further comprising: determining the identity of a user using interacting with the graphical user interface, and selecting the user interface objects to display in the persistent portal from a plurality of different user interface objects based on the identity ofthe user.
3. The method as recited in claim 1, further comprising: determining the identity of a user using interacting with the graphical user interface, monitoring the content accessed by the user, and selecting the user interface objects to display in the persistent portal from a plurality of different user interface objects based on the identity ofthe user and the content accessed by the user.
4. The method as recited in claim 1, wherein said determining is performed by one or more ofthe following: fingerprint matching, voiceprfnt matching, retina scanning, magnetic card reading, smart card reading, Java ring identification, or bar code scanning.
5. The method as recited in claim 1, wherein said storing is performed individually on a per-user basis.
6. The method as recited in claim 1, wherein said method further comprises: using the browser to automatically store web page or application addresses viewed by users and corresponding view time information, and updating the visible icons and linked predetermined web pages or applications based on the information stored by the browser.
7. The method as recited in claim 6, wherein the information stored by the browser includes view time based on cursor movement and keystrokes.
8. The method as recited in claim 1, wherein said method further comprises using the browser to access a server, wherein said generating comprises reading the one or more visible icons from the server.
9. The method as recited in claim 1, wherein said method further comprises changing the visible icons and linked predetermined web pages or applications in response to historical interaction information stored by the browser, wherein the historical interaction information is updated based on user interaction with the browser user interface.
10. The method as recited in claim 1, wherein said method further comprises changing the visible icons and linked predetermined web pages or applications in response to one or more ofthe following: (a) historical interaction information stored by the browser, wherein the historical interaction information is updated based on content displayed by the browser, (b) browsing information stored by the browser, wherein the browsing information is updated based on the browsing history of the user.
11. The method as recited in claim 1, wherein said method further comprises: using the browser to automatically store web page or application summaries viewed by users and corresponding view time information, and updating the visible icons and linked predetermined web pages or applications based on the information stored by the browser.
12. The method as recited in claim 1, further comprising: prompting the user for a password; and selecting the one or more visible icons and corresponding links based on a user profile corresponding to the password.
13. The method as recited in claim 12, further comprising: storing a plurality of user profiles, wherein each user profile corresponds to a particular password, and wherein each user profile comprises user attribute information.
14. The method as recited in claim 13, further comprising storing a plurality of user profiles, wherein the user attribute information includes the geographical location ofthe user.
15. A computer program embodied on a computer-readable medium, wherein the computer program is configured to implement the method of any of claims 1-14..
16. An Internet appliance comprising: a display device; a user input device; a network communications device; a memory; and a processor configured to receive data from said input device, said network device, and said memory, and configured to output data to said display device and said network communications device, wherein said memory is loaded with: an operating system, a browser program, and a configuration file comprising information usable to generate one or more visible icons, wherein the browser program is configured to: access said configuration file; display said visible icons as part of a browser user interface, wherein said visible icons are displayed outside any web page content display areas of said browser user interface; link a predetermined web page to each of said one more visible icons, and prevent users from closing, hiding or changing said one or more visible icons.
17. The appliance as recited in claim 16, wherein said browser is further configured to access a server and read the one or more visible icons from the server, wherein said browser is further configured to change the visible icons and linked predetermined web pages in response to browsing information stored by the browser, wherein the browsing information is updated based on the actions ofthe user.
18. The appliance as recited in claim 16, wherein said browser is further configured to change the visible icons and linked predetermined web pages in response to browsing information stored by the browser, wherein the browsing information is updated based on the browsing history ofthe user.
19. The appliance as recited in claim 16, wherein said browser is further configured to automatically store web page or application addresses viewed by users and corresponding view time information, and update the visible icons and linked predetermined web pages based on the information stored by the browser.
20. The appliance as recited in claim 16, wherein said browser is further configured to automatically store web page content types viewed by users and corresponding view time information, and update the visible icons and linked predetermined web pages based on the information stored by the browser.
21. The appliance as recited in claim 16, wherein said browser is further configured to automatically store web page summaries viewed by users and corresponding view time information, and update the visible icons and linked predetermined web pages based on the information stored by the browser.
22. The appliance as recited in claim 19, wherein the information stored by the browser includes view time based on cursor movement and keystrokes.
23. The appliance as recited in claim 16, wherein said browser is further configured to prompt the user for a password, and select the one or more visible icons and corresponding links based on the password.
24. The appliance as recited in claim 16, wherein said memory is further configured to store a plurality of user profiles, wherein each user profile includes the geographical location of each corresponding user, wherein said appliance is further configured to customize the visual icons for each user based on the geographical location of each user.
25. A computer-readable medium comprising a browser software program and a configuration file, wherein said browser software program comprises a plurality of instructions configured to: access said configuration file; display said visible icons as part of a browser user interface, wherein said visible icons are displayed outside any web page content display areas of said browser user interface; link a predetermined web page or application to each of said one more visible icons, and prevent users from closing, hiding or changing said one or more visible icons.
26. The medium as recited in claim 25, wherein said browser is further configured to access a server and read the one or more visible icons from the server.
27. The medium as recited in claim 25, wherein said browser is further configured to change the visible icons and linked predetermined web pages in response to browsing information stored by the browser, wherein the browsing information is updated based on the actions ofthe user.
28. Tlie medium as recited in claim 25, wherein said browser is further configured to change the visible icons and linked predetermined web pages or applications in response to browsing information stored by the browser, wherein the browsing information is updated based on the browsing history ofthe user.
29. The medium as recited in claim 25, wherein said browser is further configured to automatically store web page addresses viewed by users and corresponding view time information, and update the visible icons and linked predetermined web pages or applications based on the information stored by the browser.
30. The medium as recited in claim 29, wherein tlie information stored by the browser includes view time based on cursor movement and keystrokes.
31. The medium as recited in claim 25, wherein said browser is further configured to prompt the user for a password, and select the one or more visible icons and corresponding links based on the password.
32. The medium as recited in claim 25, wherein said browser is further configured to store geographical information for each user, and wherein said browser is configured to customize the one or more visible icons and corresponding links on a per-user basis based on the particular user's corresponding geographical information.
PCT/US2001/006834 2000-03-03 2001-03-02 Persistent portal for a browser WO2001067285A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU2001245406A AU2001245406A1 (en) 2000-03-03 2001-03-02 Persistent portal for a browser

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US51794000A 2000-03-03 2000-03-03
US09/517,940 2000-03-03

Publications (2)

Publication Number Publication Date
WO2001067285A2 true WO2001067285A2 (en) 2001-09-13
WO2001067285A3 WO2001067285A3 (en) 2002-03-14

Family

ID=24061878

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2001/006834 WO2001067285A2 (en) 2000-03-03 2001-03-02 Persistent portal for a browser

Country Status (2)

Country Link
AU (1) AU2001245406A1 (en)
WO (1) WO2001067285A2 (en)

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1442397A1 (en) * 2001-10-24 2004-08-04 Bea Systems, Inc. Data synchronization
EP1444627A2 (en) * 2001-11-01 2004-08-11 Yahoo! Inc. Method and system of facilitating on-line shopping using an internet browser
EP1444591A1 (en) * 2001-11-01 2004-08-11 Yahoo! Inc. Method and system of facilitating automatic login to a web site using an internet browser
US6934697B1 (en) * 2000-08-04 2005-08-23 Netzero, Inc. Creating customized internet access client user interface
WO2007063414A2 (en) 2005-12-02 2007-06-07 Nokia Corporation System, apparatus, and method for dynamically customizing and configuring applications
US7403989B2 (en) 2002-01-08 2008-07-22 Sap Ag Facilitating improved workflow
WO2010011256A1 (en) * 2008-07-22 2010-01-28 Tzee, Inc., D/B/A Tzee Mobile device with customizable login screen
US7673323B1 (en) 1998-10-28 2010-03-02 Bea Systems, Inc. System and method for maintaining security in a distributed computer network
US7676762B2 (en) 1998-10-28 2010-03-09 Yahoo! Inc. Method of controlling an Internet browser interface and a controllable browser interface
US7721228B2 (en) 2003-08-05 2010-05-18 Yahoo! Inc. Method and system of controlling a context menu
US7788603B2 (en) 1999-10-28 2010-08-31 Yahoo! Inc. Method and system of facilitating automatic login to a web site using an Internet browser
US7793227B2 (en) 2003-08-12 2010-09-07 Yahoo! Inc. Method and system of providing customizable buttons
US7992189B2 (en) 2003-02-14 2011-08-02 Oracle International Corporation System and method for hierarchical role-based entitlements
WO2012164316A1 (en) * 2011-06-03 2012-12-06 Firestorm Lab Limited Method of configuring icons in a web browser interface, and associated device and computer program product
US8893028B2 (en) 2011-09-21 2014-11-18 International Business Machines Corporation Supplementary calculation of numeric data in a web browser
CN104219243A (en) * 2014-09-12 2014-12-17 广州华多网络科技有限公司 Method and device for managing client function
US9740374B2 (en) * 2005-03-08 2017-08-22 Salesforce.Com, Inc. Systems and methods for implementing multi-application tabs and tab sets
US10839403B2 (en) 2006-12-28 2020-11-17 Ebay Inc. Contextual content publishing system and method
CN113141407A (en) * 2021-04-25 2021-07-20 上海淇玥信息技术有限公司 Page resource loading method and device and electronic equipment

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0822535A2 (en) * 1996-08-01 1998-02-04 AT&T Corp. Interactive multimedia advertising and electronic commerce on a hypertext network
WO1999027517A1 (en) * 1997-11-21 1999-06-03 The Pixel Company Secondary user interface
WO2000004434A2 (en) * 1998-07-17 2000-01-27 B.E. Technology, Llc A computer interface method and apparatus with portable network organization system and targeted advertising

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0822535A2 (en) * 1996-08-01 1998-02-04 AT&T Corp. Interactive multimedia advertising and electronic commerce on a hypertext network
WO1999027517A1 (en) * 1997-11-21 1999-06-03 The Pixel Company Secondary user interface
WO2000004434A2 (en) * 1998-07-17 2000-01-27 B.E. Technology, Llc A computer interface method and apparatus with portable network organization system and targeted advertising

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
STEYER PHELPS A: "Is There Such A Thing As A Free Ride? - The Relative Worth of No-Cost Internet Access" SMART COMPUTING - LEARNING SERIES: INTERNET BASICS, [Online] vol. 6, no. 1, January 2000 (2000-01), pages 1-6, XP002184806 Retrieved from the Internet: <URL:http://www.smartcomputing.com/editori al/article.asp?article=articles%2Farchive% 2Fl0601%2F17l01%2F17l01%2Easp> [retrieved on 2001-12-04] *

Cited By (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7673323B1 (en) 1998-10-28 2010-03-02 Bea Systems, Inc. System and method for maintaining security in a distributed computer network
US7712033B2 (en) 1998-10-28 2010-05-04 Yahoo! Inc. Method of controlling an Internet browser interface and a controllable browser interface
US7676762B2 (en) 1998-10-28 2010-03-09 Yahoo! Inc. Method of controlling an Internet browser interface and a controllable browser interface
US7788603B2 (en) 1999-10-28 2010-08-31 Yahoo! Inc. Method and system of facilitating automatic login to a web site using an Internet browser
US9324080B2 (en) 1999-10-28 2016-04-26 Yahoo! Inc. Method and system of facilitating on-line shopping using a downloadable toolbar
US6934697B1 (en) * 2000-08-04 2005-08-23 Netzero, Inc. Creating customized internet access client user interface
EP1442397A4 (en) * 2001-10-24 2006-11-15 Bea Systems Inc Data synchronization
AU2002336667B2 (en) * 2001-10-24 2007-06-21 Oracle International Corporation Data synchronization
EP1442397A1 (en) * 2001-10-24 2004-08-04 Bea Systems, Inc. Data synchronization
EP1444591A1 (en) * 2001-11-01 2004-08-11 Yahoo! Inc. Method and system of facilitating automatic login to a web site using an internet browser
EP1444627A2 (en) * 2001-11-01 2004-08-11 Yahoo! Inc. Method and system of facilitating on-line shopping using an internet browser
EP1444591A4 (en) * 2001-11-01 2007-06-06 Yahoo Inc Method and system of facilitating automatic login to a web site using an internet browser
EP1444627A4 (en) * 2001-11-01 2006-04-12 Yahoo Inc Method and system of facilitating on-line shopping using an internet browser
US7403989B2 (en) 2002-01-08 2008-07-22 Sap Ag Facilitating improved workflow
US7992189B2 (en) 2003-02-14 2011-08-02 Oracle International Corporation System and method for hierarchical role-based entitlements
US7721228B2 (en) 2003-08-05 2010-05-18 Yahoo! Inc. Method and system of controlling a context menu
US7793227B2 (en) 2003-08-12 2010-09-07 Yahoo! Inc. Method and system of providing customizable buttons
US9740374B2 (en) * 2005-03-08 2017-08-22 Salesforce.Com, Inc. Systems and methods for implementing multi-application tabs and tab sets
US9747006B2 (en) * 2005-03-08 2017-08-29 Salesforce.Com, Inc. Systems and methods for implementing multi-application tabs and tab sets
US10558336B2 (en) 2005-03-08 2020-02-11 Salesforce.Com, Inc. Systems and methods for implementing multi-application tabs and tab sets
WO2007063414A2 (en) 2005-12-02 2007-06-07 Nokia Corporation System, apparatus, and method for dynamically customizing and configuring applications
US9002342B2 (en) 2005-12-02 2015-04-07 Nokia Corporation System, apparatus, and method for dynamically customizing and configuring applications
EP1979836A4 (en) * 2005-12-02 2009-11-11 Nokia Corp System, apparatus, and method for dynamically customizing and configuring applications
EP1979836A2 (en) * 2005-12-02 2008-10-15 Nokia Corporation System, apparatus, and method for dynamically customizing and configuring applications
US10839403B2 (en) 2006-12-28 2020-11-17 Ebay Inc. Contextual content publishing system and method
WO2010011256A1 (en) * 2008-07-22 2010-01-28 Tzee, Inc., D/B/A Tzee Mobile device with customizable login screen
WO2012164316A1 (en) * 2011-06-03 2012-12-06 Firestorm Lab Limited Method of configuring icons in a web browser interface, and associated device and computer program product
US8893028B2 (en) 2011-09-21 2014-11-18 International Business Machines Corporation Supplementary calculation of numeric data in a web browser
US8935622B2 (en) 2011-09-21 2015-01-13 International Business Machines Corporation Supplementary calculation of numeric data in a web browser
CN104219243A (en) * 2014-09-12 2014-12-17 广州华多网络科技有限公司 Method and device for managing client function
CN113141407A (en) * 2021-04-25 2021-07-20 上海淇玥信息技术有限公司 Page resource loading method and device and electronic equipment

Also Published As

Publication number Publication date
WO2001067285A3 (en) 2002-03-14
AU2001245406A1 (en) 2001-09-17

Similar Documents

Publication Publication Date Title
US9324080B2 (en) Method and system of facilitating on-line shopping using a downloadable toolbar
US7788603B2 (en) Method and system of facilitating automatic login to a web site using an Internet browser
WO2001067285A2 (en) Persistent portal for a browser
US7107548B2 (en) Method of controlling an internet browser interface and a controllable browser interface
WO2001067286A2 (en) Framework for a customizable graphics user interface
US6934697B1 (en) Creating customized internet access client user interface
US6546002B1 (en) System and method for implementing an intelligent and mobile menu-interface agent
US8001456B2 (en) Methods for maintaining separation between markup and data at a client
US20020070978A1 (en) Dynamically configurable graphical user environment
US20070174230A1 (en) System and method for displaying information in association with an electronic file management application
US20130339197A1 (en) Systems and methods for marketplace listings using a camera enabled mobile device
WO2001067214A2 (en) System and method for tracking user interaction with a graphical user interface
US20020055968A1 (en) Distributed application interface and authentication process
US20040049419A1 (en) Advertising on an interactive screensaver
EP2915120A1 (en) Electronic publishing mechanisms
CN103020110A (en) Creating and maintaining images of browsed documents
US20020080184A1 (en) Application container for a graphical user environment
US20040049533A1 (en) Interactive screensaver
US20020154124A1 (en) System and method of enhanced computer user interaction
WO2003038640A1 (en) Method and system of facilitating automatic login to a web site using an internet browser
KR20010000701A (en) Method and system for advertisement using animation-character
EP1017000A2 (en) Context-sensitive, content measured dynamic information linkage
KR100431649B1 (en) Free terminal system through advertisement and local information service providing method
KR20230109895A (en) The web-based scroll speed interacting active floating banner advertising system
JP4780915B2 (en) Method and system for simplifying online shopping using internet browser

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
AK Designated states

Kind code of ref document: A3

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A3

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: COMMUNICATIONS PURSUANT TO RULES 85A/B EPC (EPO FORM 1217N/1218N OF 300103)

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: COMMUNICATION UNDER RULE 69 EPC (EPO FORM 1205 DATED 03.09.2003)

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase in:

Ref country code: JP