WEB-BASED APPLIANCE
FIELD OF THE INVENTION
The present invention relates to computer systems and. more specifically, to a web- based appliance.
BACKGROUND OF THE INVENTION Inevitably, companies that invest in computer systems discover that the cost of owning a computer system is far greater than the price of the initial hardware and software purchases. Even relatively small computer systems, consisting of a handful of workstations networked together, frequently encounter problems that can consume an exorbitant amount of time and money. To prevent such problems, and to address such problems when they occur, many companies hire full time information service (IS) professionals. Frequently, the size of a company's in- house IS department grows until it consumes a disproportionate amount of the company's resources and profits.
The magnitude of the expenses associated with maintaining a computer system is due in part to the fact that most computer systems are composed of numerous layers of general purpose components, even though the actual use of all layers is direαed to a single specific application. For example, a company may purchase a computer system for the sole purpose of handling the company's accounting. However, the actual workstations purchased for this purpose will typically be general purpose machines that provide all of the hardware services required to be able to handle any application. Many of these services are completely irrelevant for the actual use to which the machine will be directed. For example, the machines may come equipped with built-in "three-dimensional" sound capabilities that will never be utilized while the machines are used for accounting.
The general purpose machines that are to implement the accounting system will typically come installed with a general purpose operating system. Similar to general purpose
hardware, general purpose operating systems attempt to provide services to address all possible needs of all possible types of software. For example, general purpose operating systems employ complex I/O techniques for handling I O intensive applications, complex techniques to support computation intensive applications, and complex communication techniques to suppoit communication intensive applications. Many of those services may not be required by the specific context, such as accounting, in which the operating system may actually be used.
One application for which general purpose computers are used is referred to as "surfing the Internet". Surfing the Internet involves sending requests to and receiving responses from servers that belong to the world- ide network known as the Internet. Use of the Internet is becoming pervasive both as a hobby and as a critical business tool. When a general purpose computer is used to access the Internet, users frequently experience crashes due to the complex interactions between the various general purpose elements of the computer. In addition, users that use a computer for the sole purpose of accessing the Internet are forced to learn and master the complexities of each of those general puipose components. For example, users must learn how to navigate through the interface provided by the general puipose operating system to configure and customize the system, and to navigate through the file system interface provided by the operating system to launch the appropriate Internet access application.
SUMMARY OF THE INVENTION
A web- based appliance, and techniques employed by the web- based appliance, are provided to simplify network usage and reduce the cost and complexity of owning a computer system. According to one aspect of the invention, a technique for facilitating the interaction between a user and a computer system includes, upon startup of the computer system, the computer system automatically launching a browser application that generates a user interface on a display of the computer system. At all times that the computer system is running, user interaction with software on the computer system is restricted to interaction through the user interface generated by the browser application. According to another aspect of the invention, in response to an occurrence of an event within the computer system that requires information to be communicated to the user, a message that has not been requested by the web browser is delivered to the web browser. The message causes the web browser to display the information on the user interface.
According to another aspect of the invention, the computer system includes a local web server that is configured to only respond to requests locally originated by the web browser. The local web server supplies the information to the web browser for display to the user in response to requests issued to the local web server by the web browser.
BRIEF DESCRIFπON OF THE DRAWINGS
The present invention is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings and in which like reference numerals refer to similar elements and in which:
FIG. 1 is a block diagram of a web- based appliance according to an embodiment of the invention; and
FIG. 2 is a block diagram of a computer system that may be used to implement embodiments of the invention.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
Embodiments of web- based appliances, and techniques employed by the web- based appliances, are described hereafter. In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent however, to one skilled in the art that the present invention may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to avoid unnecessarily obscuring the present invention.
OVERVIEW FIG. 1 illustrates a web based appkance 100 according to an embodiment of the invention. A web- based appliance is similar to other appliances, such as toasters, stoves, and televisions, in that it is relatively inexpensive, easy to use, and easy to learn to use. These aspects of the web based appliance are particularly valuable in that services provided by the web- based appliance (e.g. providing access to resources available on a network, such as the Internet) are currently provided by computers that are generally so complex that they are prone to frequent failure.
According to one embodiment the web- based appliance includes an operating system that automatically launches a web browser 102, such as Netscape Navigator, at start- up. The browser thus launched serves as the sole interface 110 between the user and the web- based appliance. Thus, local system management, browsing the Internet, and all other activities to which the appliance may be directed are performed through the web browser interface 110.
Local system management is done through a server process running in the background that takes requests from the browser and executes binaries or scripts to make changes to the system. According to one embodiment the server process is a local web server 104 (also referred to as an "HTTP server" or "listener").
The local web server 104 acts as the underlying application server and system
management console. The browser serves as the user interface to the local web server. According to one embodiment, the browser and the local server process on the appliance are separate applications. Consequently, each of the two applications may be upgraded independent of the other application, as shall be described in greater detail hereafter. Because the browser serves as the sole interface to the local server, users are presented with a single screen that handles everything. From the user's point of view, no new applications are started, no new windows are used. etc. In contrast, conventional operating systems use a windowing system or many consoles that display different applications, with no single consistent user interface. According to one embodiment, Linux is used as the operating system, Xwindows as the graphics interface. Apache as the local web server, and Netscape Navigator as the web browser. The resulting system is portable and locally disconnected (client- server). This allows upgrades to be performed easily on the sub- components, and makes the appliance easy to manage, consistent and user friendly. START-UP: According to one embodiment the appliance boots from a CD-ROM disk. As part of the boot- up process, the web browser and the local web server are started. The local web server retrieves, or dynamically generates, a start-up HTML document and supplies the document to the web browser. The web browser displays the document to the user. Because all of these actions are performed automatically upon start-up, the first interface presented to the user is the start- up document as displayed by the web browser. INTERACTION: All interaction with the appliance is performed through the interface provided by the web browser, and by pages displayed by the web browser. Consequently, the user does not have to learn and use a separate operating system or file system user interface. UPGRADES: Even though all interaction with the operating system is performed through the browser, the browser remains a completely separate program. Consequently.
upgrades can be performed in a modular fashion. For example, a user may switch to a new version of a web browser, or to an entirely different web browser, without upgrading or affecting the operation of the local web server or operating system. Similarly, the operating system or web server may be upgraded without changing the web browser. SYSTEM SETTINGS: While web appliances may be dramatically simplified relative to general purpose computer systems, there may still be a few user- adjustable system settings. For example, a web appliance may allow the user to set any of the following settings:
- configuration for a network interface • configuration for a modem
- user id/password settings for remote sites
- configuration of the "look and feel" of the browser (e.g. the color scheme used by the browser)
According to one aspect of the invention, system settings are accessed and set through the web browser. For example, one set of options displayed on the start- up web page may correspond to system settings. When the user selects the user- interface control that is associated with a particular system setting (e.g. a hyperlink on the web page), a message is sent to the local web server. For example, a user may select a hyperlink associated with the system settings for the network connection. In response to selection of the hyperlink, a message is sent to the local web server. The local web server may respond to the message in a variety of ways. For example, the local web server may respond to the message by executing a script or machine- executable program 108. by dynamically generating and delivering to the web browser a web page, or by delivering a pre- generated web page to the web browser. For the purpose of explanation, it shall be assumed that the web server responds to the selection of a "set-up network connection" hyperlink by retrieving and presenting to the user
a pre- generated web page. The "set-up network connection" page may include, for example, a variety of controls for receiving information about the network connection. After using the controls to specify the appropriate connection information, the user may select a control to send the specified information in a message to the local web server. The local web server may respond to that message by executing a script that performs whatever interaction with the operating system and other programs is necessary to configure the network connection as specified. After executing the script that makes the appropriate settings, the web server may send a static or dynamically generated web page to the browser to indicate that the settings have been adjusted as specified. DURABLE MEMORY: According to one embodiment, the system settings are durably stored so that they do not have to be re-entered every time a user starts the web appliance. In an embodiment that runs software off read-only memory (e.g. a CDROM), the system further includes durable re-writeable memory, such as FLASH memory. The system configuration data 106 is stored in the durable re-writeable memory so that it may be revised without needing to be re- entered every time the system is restarted.
DEDICATED LOCAL WEB SERVER: According to one aspect of the invention, the local web server used to facilitate the interaction between the user and all of the local components of the appliance (e.g. the operating system) is dedicated to performing that service to that user. Specifically, the local web server does not process messages initiated fay web browsers other than the locally- executing web browser. Consequently, the local resources that are managed through the local web server are secured against outside influences. To access resources outside the appliance, a user of the appliance causes the browser application 102 to send messages to remote servers through the network connection 112. STREAMLINED OPERATING SYSTEM: According to one embodiment, the operating system employed by the web appliance may be streamlined, with the code and
complexity associated with functions not required for supporting web browsing removed. For example, for an appliance that employs for non- volatile memory only FLASH memory and a CD-ROM, the code and functions that provide suppoit for floppy drives may be removed. In addition, functions that are configured to generate system- related messages to the user are revised to either suppress the display of superfluous information, or to cause the information to be displayed by sending a message to the local web server to cause the local web server to generate and deliver a web page that contains the information to the web browser.
SYSTEM MESSAGES: According to one embodiment system messages are delivered to the user by pushing a web page to the web browser (delivered to the browser without first having been requested by the browser). For example, the web appliance may be configured with a daemon that monitors the connection to the Internet If the connection is broken, the break is detected by the daemon. The daemon responds to the break by sending a message to the web browser to display a web document that indicates that the connection to the Internet was broken. The web page thus delivered may be dynamically generated, and contain information about the specific event that caused generation of the message (e.g. the time at which the connection was broken).
According to one technique, a script is used to display a web page to a user in response to a system event In one embodiment, the script starts a separate instance of the web browser, and the separate instance of the web browser pushes a web page to the web browser instance that is currently displaying information to the user.
HARDWARE OVERVIEW
Figure 2 is a block diagram that illustrates a computer system 200 upon which an embodiment of the invention may be implemented. Computer system 200 includes a bus 202 or other communication mechanism for communicating information, and a processor 204 coupled with bus 202 for processing information. Computer system 200 also includes a main
memory 206, suςh as a random access memory (RAM) or other dynamic storage device, coupled to bus 202 for storing information and instructions to be executed by processor 204. Main memory 206 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by processor 204. Computer system 200 further includes a read only memory (ROM) 208 or other static storage device coupled to bus 202 for storing static information and instructions for processor 204. A storage device 210, such as a magnetic disk or optical disk, is provided and coupled to bus 202 for storing information and instructions.
Computer system 200 may be coupled via bus 202 to a display 212. such as a cathode ray tube (CRT), for displaying information to a computer user. An input device 214, including alphanumeric and other keys, is coupled to bus 202 for communicating information and command selections to processor 204. Another type of user input device is cursor control 216, such as a mouse, a trackball, or cursor direction keys for communicating direction information and command selections to processor 204 and for controlling cursor movement on display 212. This input device typically has two degrees of freedom in two axes, a first axis (e.g., x) and a second axis (e.g.. y). that allows the device to specify positions in a plane.
The invention is related to the use of computer system 200 for implementing the techniques described herein. According to one embodiment of the invention, those techniques are implemented by computer system 200 in response to processor 204 executing one or more sequences of one or more instructions contained in main memory 206. Such instructions may be read into main memory 206 from another computer- readable medium, such as storage device 210. Execution of the sequences of instructions contained in main memory 206 causes processor 204 to perform the process steps described herein. In alternative embodiments, hard- wired circuitry may be used in place of or in combination with software instructions to implement the invention. Thus, embodiments of the invention are
pot limited to any specific combination of hardware circuitry and software.
The term "computer- readable medium" as used herein refers to any medium that participates in providing instructions to processor 204 for execution. Such a medium may take many forms, including but not limited to. non- volatile media, volatile media, and transmission media. Non-volatile mediaindudes, for example, optical or magnetic disks, such as storage device 210. Volatile media includes dynamic memory, such as main memory 206. Transmission media includes coaxial cables, copper wire and fiber optics, including the wires that comprise bus 202. Transmission media can also take the form of acoustic or light waves, such as those generated during radio- ave and infra-red data communications. Common forms of computer- readable media indude, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, or any other magnetic medium, a CD-ROM, any other optical medium, punchcards. papertape, any other physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH- EPROM. any other memory chip or cartridge, a carrier wave as described hereinafter, or any other medium from which a computer can read. Various forms of computer readable media may be involved in carrying one or more sequences of one or more instructions to processor 204 for execution. For example, the instructions may initially be carried on a magnetic disk of a remote computer. The remote computer can load the instructions into its dynamic memory and send the instructions over a telephone line using a modem. A modem local to computer system 200 can receive the data on the telephone line and use an infra- red transmitter to convert the data to an infra- red signal. An infra- red detector can receive the data carried in the infra-red signal and appropriate drcuitry can place the data on bus 202. Bus 202 carries the data to main memory 206, from which processor 204 retrieves and executes the instructions. The instructions received by main memory 206 may optionally be stored on storage device 210 either before or after execution by processor 204.
Computer system 200 also includes a communication interface 218 coupled to bus 202.
Communication interface 218 provides a two-way data communication coupling to a network link 2£0 (hat is connected to a local netwoik 222. For example, communication interface 218 may be an integrated services digital network (ISDN) card or a modem to provide a data communication connection to a corresponding type of telephone line. As another example. communication interface 218 may be a local area network (LAN) card to provide a data communication connection to a compatible LAN. Wireless links may also be implemented. In any such implementation, communication interface 218 sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information. Network link 220 typically provides data communication through one or more networks to other data devices. For example, network link 220 may provide a connection through local network 222 to a host computer 224 or to data equipment operated by an Internet Service Provider (ISP) 226. ISP 226 in turn provides data communication services through the world wide packet data communication network now commonly referred to as the "Internet" 228. Local network 222 and Internet 228 both use electrical, electromagnetic or optical signals that cany digital data streams. The signals through the various networks and the signals on network link 220 and through communication interface 218, whidi carry the digital data to and from computer system 200. are exemplary forms of carrier waves transporting the information. Computer system 200 can send messages and receive data, induding program code, through Uie network(s), network link 220 and communication interface 218. In the Internet example, a server 230 might transmit a requested code for an application program through Internet 228, ISP 226, local network 222 and communication interface 218. In accordance with the invention, one such downloaded application implements the techniques described herein. The received code may be executed by processor 204 as it is received, and/or stored in storage device 210, or other non- volatile storage for later execution. In this manner,
computer system 200 may obtain application code in the form of a carrier wave.
In the foregoing specification, the invention has been described with reference to specific embodiments thereof. It will, however, be evident that various modifications and changes may be made thereto without departing from the broader spirit and scope of the invention. The specification and drawings are. accordingly, to be regarded in an illustrative rather than a restrictive sense.