WO2001039042A2 - Self-contained network browser with diagnostic abilities - Google Patents
Self-contained network browser with diagnostic abilities Download PDFInfo
- Publication number
- WO2001039042A2 WO2001039042A2 PCT/US2000/016978 US0016978W WO0139042A2 WO 2001039042 A2 WO2001039042 A2 WO 2001039042A2 US 0016978 W US0016978 W US 0016978W WO 0139042 A2 WO0139042 A2 WO 0139042A2
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- module
- failure
- browser
- memory
- network
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2294—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing by remote test
Definitions
- This invention relates generally to network browser software and more particularly to a self-contained network browser with diagnostic abilities.
- a web browser is software that is executed by a personal computer in order to send and receive data from a network.
- the network is a wide area network, such as the Internet, or it can be a local area network, such as an intranet.
- the browser software can request information, such as hypertext markup language (“HTML”) files from another computer or "server” on the network.
- HTML hypertext markup language
- FIG. 1 shows a known software stack 100 for a personal computer.
- the software that forms the software stack is persistently stored in a read-only memory (“ROM”) and a hard drive of the personal computer.
- ROM read-only memory
- BIOS basic input output system
- the BIOS 104 controls low-level input and output operations when so directed by the operating system.
- the operating system 108 is one or more software products (e.g., device drivers) that jointly manage the system resources (e.g., memory management and peripheral devices) of a personal computer, as well as any other programs (e.g., applications) that use the system resources.
- the device drivers can be part of the operating system 108, or they can be added over the top of the operating system 108. For example, some device drivers can be downloaded into memory as needed.
- One or more applications 116 are stacked on top of the operating system 108.
- the applications 116 communicate with the operating system 108 through an application programming interface (hereinafter "API") 112, which contains functions and procedures that are called by the applications 116.
- API 112 functions and procedures that are called by the applications 116 are in turn passed to the operating system 108.
- the operating system 108 then passes any required input/output processes on to the BIOS 104, or processes them directly using a device driver.
- the operating system 108, the API 112, and the applications 116, unlike the BIOS 104, are all stored m the hard drive of the personal computer. This is largely due to the size of these software components, but also due to their extensible nature.
- Microsoft's (or any known) browser is part of the operating system, or that it is an application program, the fact remains that the browser, just like the operating system, is still stored in the hard disk. When the hard disk fails, the browser and the personal computer are usually useless.
- a network browser with diagnostic abilities stored in a persistent memory, wherein the persistent memory is not a hard disk, is provided.
- the network browser is used to repair failures of peripheral devices in a networked computer, such as a hard drive, so as to avoid forcing a user to manually diagnose or solve the failure.
- the network browser removes strict dependence on a traditional operating system, and thus the hard disk, to make such repairs.
- the network browser comprises a plurality of software modules.
- the modules include: a device driver module (216), which is configured to initialize and test one or more peripheral devices; a real time kernel module (220), which is configured to detect and dispatch data to and from peripheral devices, though said device driver module (216), including processing diagnostic data corresponding to operation of said peripheral devices, and to perform memory management tasks; an internet protocol module (224), which is configured to handle network communications with remote devices; a graphics windowing module (232), which is configured to process visual display data and control; and a hypertext markup language module (248) configured to interpret hypertext markup language documents for display with said graphics windowing module (232) .
- Hardware configurations and software methods for the self-contained browser are disclosed herein.
- processing diagnostic data includes initializing peripheral equipment, detecting a failure, contacting a remote server, loading diagnostic interface files, and diagnosing the failure interactively with the remote server using the interface files .
- FIG. 2 is a block diagram of a self-contained ROM-based browser software stack according to the present invention.
- FIG. 3 is a high-level block diagram of the present invention.
- FIG. 4 is a detailed block diagram of the present invention.
- FIG. 5A is a flowchart depicting the invocation of the present invention.
- FIGS. 5B and 5C are flowchart depicting useful applications of the present invention.
- FIG. 6 is a block diagram of a personal computer.
- FIG. 2 depicts a block diagram of a self-contained, persistently stored browser software stack 208.
- the browser software stack 208 is persistently stored, but not on a traditional electromagnetic hard drive.
- an "electromagnetic hard drive” is a magnetic storage medium, usually called a platter, that is mechanically rotated. Read and write operations are performed by a read-write head that is part of the hard drive.
- the browser 208 is stored in PC BIOS in a read-only memory ("ROM”), 212 or a ROM equivalent, such as: electrically programmable read-only memory (“EPROM”), electrically erasable programmable read-only memory ( “EEPROM” ) , electrically alterable programmable read-only memory (“EAPROM”), and flash erasable programmable read-only memory (“FLASH” or “FEPROM” ) .
- ROM read-only memory
- EPROM electrically programmable read-only memory
- EEPROM electrically erasable programmable read-only memory
- EAPROM electrically alterable programmable read-only memory
- FLASH flash erasable programmable read-only memory
- FLASH flash erasable programmable read-only memory
- PC BIOS stands for "personal computer basic input output system.”
- the PC BIOS is a firmware code region of memory that is permanently resident in the personal computer. It is primarily responsible for performing low level input output operations, usually on behalf
- the PC BIOS includes the self-contained browser software stack 208.
- the browser 208 is independent of a known operating system and a hard drive.
- employing the browser 208 makes a personal computer less susceptible to failures and allows the personal computer to operate in spite of certain types of failures -- whether they are failures that occur at startup, or during run-time operation of the personal computer.
- the browser 208 can be used to diagnose problems associated with hardware components coupled to the personal computer.
- the browser 208 depicted in FIG. 2 architecturally defines an embodiment of the invention.
- the browser 208 is stored in a ROM 212.
- FIG. 3 is a high-level block diagram of the browser 300 as it operates with electronic hardware, such as a personal computer (one embodiment of a personal computer is described below with reference to FIG. 6) .
- a personal computer (hereinafter "computer 300") having the browser software performs at least four basic operations.
- One operation includes an input/output function.
- the computer 300 includes an input module 304.
- the input module 304 comprises hardware that provides one or more communication means with an external device, such as a keyboard, a mouse, a stylus, or a touch screen.
- a serial port, an I/O controller, a USB port, an IEEE 1394 port, and a CEBus are examples of communications means.
- a network communications module 308 that handles communication functions and operations at the physical, data link, network and transport layers of, for example, the seven layer OSI ("Open Systems Interconnection") Reference Model, which is generally known in the art of networking.
- Hardware devices that can implement the network communications module 308 include an Ethernet card, a traditional landline modem, a cable modem, and a wireless modem.
- the Internet RFC's include 791 (Internet Protocol or "IP"), 792 (Internet Control Message Protocol or “ICMP"), 793 (Transmission Control Protocol or “TCP”), 826 (Address Resolution Protocol or "ARP” ) , and 1661 (Point-to-Point Protocol or "PPP”), all of which are available on the Internet at the URL http : //www.pmg . lcs .mit . edu/rfc . html .
- IP Internet Protocol
- ICMP Internet Control Message Protocol
- TCP Transmission Control Protocol
- ARP Address Resolution Protocol
- PPP Point-to-Point Protocol
- a third operation of the computer 300 is processing data and control to and from the network communications module 308.
- various protocols are employed that interpret messages from the network communications module 308 and either provide a client (or "user interface") specifically for them (for example, terminal monitor software or an electronic mail client) , or access another client at a different module (for example in the page rendering module 316, which is described below) .
- client or "user interface”
- the network application module 312 provides a client for a user, then in addition to handling data to and from the network communications module 308, it can receive data from the input module 304 -- either directly or through another module, such as the page rendering module 316.
- Exemplary applications for the network application module 312 are DNS (Domain Name System) , HTTP (Hypertext Transfer Protocol), SSL (Secure Sockets Layer), HTTPS (HTTP Secure) , SMTP (Simple Mail Transfer Protocol) , POP3 (Post Office Protocol Version 3), TELNET, and FTP (File Transfer Protocol) .
- DNS Domain Name System
- HTTP Hypertext Transfer Protocol
- SSL Secure Sockets Layer
- HTTPS HTTP Secure
- SMTP Simple Mail Transfer Protocol
- POP3 Post Office Protocol Version 3
- TELNET TELNET
- FTP File Transfer Protocol
- the page rendering module 316 handles interpretive aspects of transforming hypertext markup language ("HTML") documents, as well as other document formats. For example, the page rendering module 316 renders graphics files, performs page layout functions, and handles window positioning, sizing, and scrolling in response to data from the input module 304 (for example, data from a mouse) .
- the page rendering module 316 communicates directly with a display module (not shown) .
- FIG. 4 is a detailed functional block diagram of the software in the self-contained network browser.
- FIG. 4 is organized in accordance with a typical data flow from a network (for example, over a peripheral -device) to its ultimate presentation on a computer display or terminal .
- FIG. 4 is organized in accordance with a typical data flow from a network (for example, over a peripheral -device) to its ultimate presentation on a computer display or terminal .
- FIG. 4 is a detailed functional block diagram of the software in the self-contained network browser.
- FIG. 4 is organized in accordance with a typical data flow from a network (for example, over a peripheral -device) to its ultimate presentation on a computer display or terminal .
- FIG. 4 is a detailed functional block diagram of the software in the self-contained network browser.
- FIG. 4 is organized in accordance with a typical data flow from a network (for example, over a peripheral -device) to its ultimate presentation on a computer display or terminal .
- the input module 304 includes software modules 408 through 412.
- the network communications module 308 includes software modules 416 through 432
- the network application module 312 includes software modules 436 through 464
- the page rendering module 316 includes software modules 468 through 482.
- a peripheral device 404 i.e., an internal or external device that is added to the computer 300, such as an Ethernet adapter, a keyboard, a mouse, or a wire-line/wireless modem
- I/O input/output
- each peripheral device is attached to a particular I/O port and data communicated from the peripheral device causes an interrupt in the real-time kernel, which is further described below with reference to FIG. 2.
- the interrupt identifies an exception vector or memory address of an algorithm that handles the input of data from the peripheral device. For example, a signal from a modem can trigger a first serial port interrupt, which in turn causes the modem point-to-point protocol (“PPP”) module 416 to be activated.
- PPP modem point-to-point protocol
- the debug console module 412 is not required.
- the debug console module 412 is used as a debug port for software and hardware testing purposes.
- elements shown with solid lines are part of the browser software, whereas elements shown with dashed lines are part of the overall personal computer while the browser software is executing.
- the physical page cache 490 and the display 494 are not part of the browser software stack.
- the page cache 490 preferably formed from a volatile memory, acts as a buffer for data processed by one or more network applications before the data is passed on to the page rendering module 472.
- the page cache 490 can pre-cache HTML files (both not -yet -interpreted and interpreted files) before they are passed on to the display 494.
- the display 494 can be a peripheral device that the page rendering module 472 communicates with or it can be a volatile memory buffer for the actual display device that presents data to a user.
- the display 494 receives data from the page rendering module 472.
- the ROM files 468 are not required (although they are preferred) .
- the ROM files 468 can persistently store one or more user diagnostic interfaces or templates used by a particular remote vendor (e.g., a computer manufacturer or an internet service provider) to diagnose a problem with the personal computer.
- an HTML form or an executable diagnostic program that is used when the browser connects with a remote vendor can be stored in ROM files 468.
- ROM files the files can be stored in an electrically alterable ROM, such as a FLASH memory. This is useful when cookies or other files may be stored in the ROM files 468, since cookies are not necessarily purely static files, but rather, they may change from time to time.
- Cursor control module 408 is used to process incoming data from a mouse or stylus.
- the data is generally two dimensional movement data corresponding to movement of the mouse.
- the data also includes control signals, such as a mouse selector click.
- the cursor control module 408 preferably receives the data via a serial port, but it can also receive data from a wireless port, such as an infrared port .
- Keyboard module 410 is the keyboard driver. It is used to enter or type text into forms and/or to enter commands directed to the page rendering module 472, as well as other modules interfacing the page rendering module 472 -- such as modules 452 through 464.
- An important aspect of the keyboard module 472 is its ability to launch the browser. Typically, a user enters a special key or sequence of keys
- the keyboard module 410 is also used to control page scrolling and field selection, for example through use of direction and/or tab keys on a keyboard .
- the debug console 412 is used for debugging purposes and is included primarily for software tuning. For example, since the device drivers can be different as between chipsets and hardware devices on different computers, the debug console 412 is useful in monitoring the browser performance as it operates with one or more new hardware devices. The debug console 412 is not a necessary component of the browser software.
- the modem PPP module 416 is used to process incoming packet data from a public switched telephony network ("PSTN").
- PSTN public switched telephony network
- the functionality of the module 416 preferably complies with Internet RFC 1616, as it is configured to assist a modem in connecting to an internet service provider (“ISP") or internet access provider (“IAP”), and then making virtual connections with one or more remote servers.
- ISP internet service provider
- IAP internet access provider
- the modem PPP module 416 also includes the device drivers for the modem.
- the Ethernet ARP module 420 is also used to process incoming packet data from a network.
- the network can be a high-speed local area network ("LAN") , or a high-speed wide area network (“WAN”) .
- the module 420 includes one or more device drivers for the Ethernet card (a peripheral device) .
- the Ethernet ARP module 420 complies with Internet RFC 826, as the module is configured to translate between IP and Ethernet addresses.
- the IP/ICMP module 424 receives packets from modules 416 or 420, depending on the network connection.
- the IP portion of the IP/ICMP module 424 handles fragmentation, packet routing and re-assembly of IP packets.
- ICMP is an extension to IP that handles generation of error messages and other information associated with IP.
- the functionality of the IP/ICMP module 424 is consistent with Internet RFCs 791 and 792.
- TCP/UDP module 428 assembles IP packets into messages for the network applications.
- the TCP/UDP module 428 operates in accordance with Internet RFC 793 (TCP) and Internet RFC 768 (User Datagram Protocol or "UDP").
- TCP Internet RFC 793
- UDP User Datagram Protocol
- the socket application programming interface (“API") module 432 provides an interface between the network communications module 308 and the network application module 312 of FIG. 3. As a network application is executed on the computer 300, the network application calls functions and sends and receives data/messages to and from the network communications module 308. To this end,- the socket API 432 is used as a dispatcher to create and destroy IP virtual connections, or "sockets", with remote servers. Because both TCP and UDP are supported by the browser software, the sockets can be connection-oriented or connectionless.
- modules 436 through 464 can be classified as network application modules.
- the network application modules are communicatively coupled to both the socket API 432 and the page rendering module 472.
- DNS module 460 is used to map (or "resolve") English- type URLs (e.g., "http://www.elegent.com", where "http://” identifies the network application protocol and
- IP addresses e.g., "206.171.12.20”
- Ethernet ARP module 420 maps IP addresses to Ethernet addresses.
- DNS is described in Internet RFC 1034.
- DNS module 460 passes domain name requests ("queries") to a resolver or name server for processing in accordance with RFC 1034.
- HTTP module 456 is used for the transfer of HTML ("hypertext markup language") files to or from a remote server. Most of the HTML files are ultimately presented to a user via the page rendering module 472. HTTP module 456 is compliant with Internet RFC 2068.
- SMTP module 436 includes software that handles sending electronic mail messages in accordance with Internet RFC
- the SMTP module 436 is communicatively coupled to both the socket API 432 and the electronic mail client (or "e-mail module") 464 (which is a user interface for the SMTP and P0P3 network applications) .
- P0P3 module 440 includes software that handles retrieving electronic mail messages from a remote server.
- the POP3 module 440 is communicatively coupled to both the socket API 432 and the electronic mail client 464.
- E-mail module 464 is preferably an HTML-based software interface that is interpreted by the page rendering module 472.
- SMTP and POP3 are two presently preferred protocols used in the present invention
- other electronic mail protocols can also be employed.
- modules 436 and 440 could be replaced by Internet Message Access Protocol ("IMAP") compliant software.
- IMAP Internet Message Access Protocol
- FTP module 444 complies with Internet RFC 959.
- the FTP module 444 handles file transfers between the computer on which the browser resides and a remote server.
- the FTP module 444 is not necessary or required for a successful implementation of the browser of the present invention.
- SSL module 448 and HTTPS module 452 manage complementary security protocols employed by the browser. These modules are activated when secure exchanges are desired between the self-contained network browser and the remote server. When these modules are activated, dedicated ports (e.g., port 443) between the browser and the remote vendor/server are used to pass IP packets. The browser and the server establish session identifiers and share one or more encryption keys. The session identifiers and encryption keys are used to verify the authenticity of the exchanged information, as well as to protect the information exchanged from snoopers (unauthorized persons who try to eavesdrop on a communication) . Both the SSL module 448 and the HTTPS module 452 are not required for successful implementation of the present invention.
- the page rendering module 472 engages in two-way communications with the network application modules 312. Exchanges between the page rendering module 472 and the network application modules 312 are generally buffered by the page cache 490.
- the page rendering module 472 also communicates screen information to the display 494, which usually includes a graphics accelerator adapter for a bitmap display.
- the page rendering module 472 also receives data from one or more input devices (such as a mouse or keyboard) .
- the page rendering module 472 includes five basic elements. One element is as a graphics rendering element 474.
- the graphics rendering element 474 interprets GIF, JPEG, and MPEG type files for presentation on a bitmap display.
- the graphics rendering element 474 also handles image scaling.
- Another page rendering module 472 element is a font engine 476.
- the font engine 476 supports the various fonts used by HTML files.
- the multi-lingual element 478 supports the interpretation of characters m HTML files into one of a number of different languages, although only one language needs to be supported by the browser.
- the page layout element 480 interprets the formatting tags m HTML files, for example the ⁇ bold>, ⁇ center>, and ⁇ color> tags, as well as the ⁇ table> and ⁇ frame> tags.
- the windowing system 482 of the page rendering module 472 provides a window environment for each page or subframe of the HTML files presented to a user.
- the windowing system 482 handles window sizing for the display 494, as well as the generation of horizontal and vertical scroll bars that a peripheral device can control (via cursor control module 408) . Movement of the cursor or stylus detected at the cursor control module 408 is communicated directly to the page rendering module 472, and m particular the windowing system 482, for processing.
- FIG. 2 depicts a functional block diagram of the self-contained browser software stack 208 as depicted and described in detail with reference to FIG. 4.
- the diagram is useful m understanding the overall architecture of the self-contained network browser, which is preferably contained m a read-only memory 212.
- the real-time kernel 220 (which is not shown as a single module m FIG. 4) performs at least two basic tasks.
- the basic tasks of the real-time kernel 220 include (1) detecting and dispatching data to and from peripheral devices to their appropriate modules and (2) memory management.
- the real-time kernel 220 actively polls peripheral devices 404 m an attempt to detect a change of state m the devices (for example, if peripheral devices share a common bus) , or the kernel 220 passively receives direct interrupt requests from the peripheral devices 404.
- the real-time kernel 220 differs from a traditional operating system m that it handles low level tasks that the traditional operating system may perform, but does not handle higher level tasks . Rather, the higher level tasks are reserved for unique modules m the browser 208.
- the memory management aspects of the real-time kernel 220 include management of the page cache 490, as well as other volatile execution memory while processes are running.
- the real-time kernel 220 performs functions such as memory allocation and garbage collection for global and/or local memory areas utilized by each of the modules depicted m FIG. 4.
- the realtime kernel 220 manages the page cache 490 (FIG. 4) as three logical memory regions.
- a request queue region 491 stores requests detected by the cursor control 408 and passed to the page cache 490 by the page rendering module 472. The request queue region 491 also stores requests generated by the page rendering module 472.
- a pre-processed data region 492 stores data that has not been interpreted by the page rendering module 472.
- the pre-processed region 492 is particularly useful when one or more network applications pre-fetch batches of HTML files, or request multiple HTML files, prior to actually receiving an explicit request from a user.
- a post-processed data region 493 holds data that has been interpreted by the page rendering module 472 but has not yet been sent to the display 494.
- Data stored in the post-processed data region 493 passes from a network application to the page rendering module 472, and then from the page rendering module 472 to the page cache 490. From the page cache 490 it can again pass through the page rendering module 472 on to the display 494.
- the real-time kernel 220 handles input and output between the hardware resources (for example internal and external devices/components) and the software processing modules of the computer 300. Accordingly, the real-time kernel 220 communicates with one or more device drivers 216 associated with individual hardware components to ensure proper communication processing as well as proper hardware component initialization. According to one embodiment, the real-time kernel 220 is communicatively coupled with an initialization module (not shown) . The initialization module detects each peripheral device connected to the computer 300, formats the peripheral device with any initialization parameters needed, and, if the initialization is not successful, then the initialization module triggers a diagnostic processing mode for the browser.
- an initialization module not shown
- the browser 208 can be invoked by either the initialization module enabling the diagnostic processing mode, or by a direct call from a traditional operating system or an end-user.
- the initialization module is shared with both the browser 208 and a traditional operating system.
- the browser 208 includes device driver software 216 that communicates with and/or controls the peripheral devices of the computer.
- the device driver software 216 can include initialization and testing software that ensures a particular peripheral device is operational (some of the testing software can be separate from the browser 208) .
- the real-time kernel 220 operates over the device driver software 216, and manages the computer system resources and uses the device drivers 216 to communicate with the peripheral devices.
- Internet protocol software 224 is stacked over the real-time kernel 220, and is used to handle a variety of network communications, such as those described above with reference to FIG. 4.
- the graphics windowing software 228 handles behind-the-scene processing of data that is presented to a user on a display device. For example, window positioning, cursor and keyboard input/control, and graphics processing is handled, in part, by the graphics windowing software 228.
- the software components of FIG. 2 that operate above the graphics windowing software 228 are more closely related to end-user applications. For example, -SSL software 236 handles security information processing.
- the font software supports various fonts that are displayed to the end-user, and the imaging software 232 interprets graphics files that are also displayed to the end-user.
- the e-mail software 244 is an end-user client that allows the end-user to send and receive electronic messages.
- HTML software 248 is an end-user application that interprets HTML files, for example by parsing the files and passing the parsed sections on to the appropriate module for further processing.
- FIG. 5A is a flowchart depicting steps for invoking the browser on a personal computer according to an embodiment of the invention.
- the computer system hardware components internal and external, are initialized.
- a test is performed to determine whether a browser command or trigger has been set .
- the browser command is invoked m response to a key or sequence of keys typed on a keyboard while the personal computer is booting up.
- a physical or CMOS setup switch is set that triggers the self- contained network browser.
- step 512 the computer enters a normal operating mode. For example, the traditional operating system boots and general purpose applications are be executed. Similar to step 508, m step 516 a test is performed to determine whether the browser trigger is activated. It is noted that this process can be handled by an exception vector or interrupt routine, or it can be handled by a particular device driver or the traditional operating system. If a browser trigger was detected m step 516, then m step 520 the operating system shuts down and the process continues to step 524. In step 524, which follows steps 508 or 520, the self- contained browser is invoked. FIGS. 5B and 5C depict particularly useful applications for the self-contained browser once it has been invoked. The steps shown m FIGS. 5B and 5C replace connector "A" (element 528) .
- FIG. 5B a flowchart is shown depicting use of the browser to diagnose and repair a failed hardware component.
- the browser connects to a network or "remote" server corresponding to a particular vendor.
- the vendor can be the company that sold the personal computer, or it can be another service provider that handles technical service/repair of the personal computer.
- diagnostic files for example files stored m ROM files 468, as well as files downloaded from the remote server, are loaded. These diagnostic files allow an end-user to report a problem type, to perform system configuration detection, or to diagnose selected hardware components.
- the diagnostic files can include interpreted software code, executable software code, or HTML interfaces such as forms. The vendor is thus able to remotely diagnose the problem the personal computer is experiencing.
- the vendor can send a command that tells the browser launch a particular diagnostic program, or the vendor can send a particular compiled or interpreted diagnostic program to the browser. If a diagnostic program is sent to the browser, then it is sent using a FTP, an HTTP, an HTTPS, or a SMTP protocol. If a public network is used, for example the Internet (versus an intranet) , a certificate is used to authenticate the diagnostic program. For example, RSA Data Security, Inc. or X.509 compliant certificates are employed to verify the authenticity of the diagnostic program. In step 540, the diagnostic program, whether it was stored locally or was sent from a remote vendor, is executed.
- the diagnostic program can confirm that the hard disk did fail, or it can examine the contents of an error log corresponding to the operating system and other hardware components. Part of executing the diagnostic program can also include uploading the results to the vendor so that the vendor can take corrective action.
- a test is performed in step 544 to determine whether the problem can be repaired. If the problem can be repaired, then it is repaired in step 548, which may also include downloading an additional program from the vendor -- for example, as was described above with reference to step 540. However, if the problem cannot be repaired, then in step 552 a notification is sent to either the user or the vendor (or both) indicating that a repair cannot be made. If the vendor is notified in step 552, then the vendor can follow up with the end-user of the personal computer. In FIG.
- the browser is used to explore or "surf" the Internet as is shown in step 556.
- a user of the personal computer can use the self-contained network browser to connect to remote servers and send data and retrieve HTML files. Since aspects of the traditional operating system and the browser overlap, that is each is separately (but not necessarily concurrently) used in one form or another to manage the computer system resources, each can be executed independently of the other. Thus, failures of the traditional operating system or of a peripheral device, in particular the hard disk, will not necessarily affect the browser .
- FIG. 6 is a block diagram that illustrates an embodiment of a computer system 600 upon which the invention can be implemented.
- Computer system 600 includes a bus 602, or other communication mechanism for communicating information, and a processor 604 coupled with bus 602 for processing information.
- Computer system 600 also includes a main memory 606, such as a random access memory (“RAM”), or other dynamic (or “volatile”) storage device, coupled to bus 602.
- the mam memory 606 stores information and instructions executed by processor 604 during execution.
- Main memory 606 also stores temporary variables or other intermediate information during execution of instructions by processor 606.
- Computer system 600 further includes a read only memory (“ROM”) 608 or other static (or “persistent") storage device (e.g., FLASH, PROM, EEPROM, etc.) coupled to bus 602.
- the ROM 608 stores static information and instructions for processor 604, m particular the browser as described herein.
- a storage device 610 (or “hard disk”, or “hard drive”), such as a magnetic disk or optical disk, is coupled to bus 602.
- the storage device 610 stores information such as data structures and instructions, for example the operating system or application programs that use the operating system.
- Computer system 600 is preferably -coupled via bus 602 to a display 612, such as a cathode ray tube ("CRT") or an active or passive-matrix display.
- the display 612 presents images to an end-user.
- An input device 614 is coupled to bus 602.
- the input device 614 communicates information and command selections to processor 604.
- cursor control 616 is Another type of user input device, such as a mouse, a trackball, or cursor direction keys, for communicating direction information and command selections to processor 604 and for controlling cursor movement on display 612.
- This input device 614 typically has two degrees of freedom m two axes, a first axis (e.g., x) and a second axis (e.g., y) , that allows the device to specify positions m a plane.
- a first axis e.g., x
- a second axis e.g., y
- the invention is a persistently stored, self-contained browser, where the browser is not stored m the hard disk, such as storage device 610.
- One application for the invention is for diagnosis and repair of the computer system 600.
- Another is as a diskless internet device.
- the processor 604 m the computer system 600 executes one or more sequences of instructions contained m main memory 606. Such instructions are read into mam memory 606 from another computer-readable medium, such as storage device 610 or ROM 608. Execution of the sequences of instructions contained m mam memory 606 causes processor 604 to execute the browser and other processes described herein.
- hard-wired circuitry may be used m place of or combination with software instructions to implement the invention.
- embodiments of the invention are not limited to any specific combination of hardware circuitry and software.
- Nonvolatile media includes, for example, optical or magnetic disks, such as storage device 610.
- Volatile media includes dynamic memory, such as mam memory 606.
- Transmission media includes coaxial cables, copper wire and fiber optics, including the wires that comprise bus 602. Transmission media can also take the form of acoustic or light waves, such as those generated during radio-wave and infrared data communications.
- Computer-readable media include, a floppy disk, a flexible disk, a hard disk, a magnetic tape, or any other magnetic media, a CD-ROM, any other optical media, punchcards, a paper-tape, any other physical media with patterns of holes, a RAM, a ROM, a FLASH, or any other memory chip or cartridge, a carrier wave as described hereinafter, or any other media from which a computer can read .
- Various forms of computer-readable media may be involved m carrying one or more sequences of one or more instructions to processor 604 for execution.
- 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 600 can receive the data on the telephone line and use an infrared transmitter to convert the data to an infrared signal .
- An infrared detector coupled to bus 602 can receive the data carried m the infrared signal and place the data on bus 602.
- Bus 602 carries the data to mam memory 606, from which processor 604 retrieves and executes the instructions.
- the instructions received by mam memory 606 may optionally be stored on storage device 610 before or after execution by processor 604.
- Computer system 600 also includes a communication interface 618 coupled to bus 602.
- Communication interface 618 provides a two-way data communication coupling to a network link 620 that is connected to a local network 622.
- communication interface 618 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.
- ISDN integrated services digital network
- communication interface 618 may be a local area network (“LAN”) card to provide a data communication connection to a compatible LAN.
- LAN local area network
- Wireless links may also be implemented.
- communication interface 618 sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.
- Network link 620 preferable provides data communication through one or more networks to other data devices .
- network link 620 may provide a connection through local network 622 to a host computer 624 or to data equipment operated by an Internet Service Provider ("ISP") 626.
- ISP 626 in turn provides data communication services through the "Internet” 628 -- for example computer diagnostic services.
- Internet 628 uses electrical, electromagnetic or optical signals that carry digital data streams .
- the signals through the various networks and the signals on network link 620 and through communication interface 618, which carry the digital data to and from computer system 600, are exemplary forms of carrier waves transporting the information.
- Computer system 600 can send messages and receive data, including program code, through the network(s), network link 620 and communication interface 618.
- a server 630 might transmit requested code for an application program through Internet 628, ISP 626, local network 622 and communication interface 618 -- for example using the FTP protocol.
- one such downloaded application is executable software code or computer configuration parameters that either further diagnose the computer's problem, or fix the problem outright.
- the received code may be executed by processor 604 as it is received, and/or stored m mam memory 606, storage device 610, or other non-volatile storage for later execution. In this manner, computer system 600 may obtain application code m the form of a carrier wave.
- input module 304 interacts with input device 614 and cursor control 616.
- Network communications module 308 and network application module 312 interact with communication interface 618.
- page rendering module 316 interacts with display 612.
- all of the self-contained network browser software code is stored m one or more banks of ROM 608. When executed, however, the browser software code is copied to mam memory 606. In one embodiment, the page cache 490 is also be a portion of mam memory 606.
- Advantages of the present invention include a small footprint, self-contained browser architecture that is independent of, yet complimenting, a traditional operation system.
- a computer incorporating the browser can function without a hard disk.
- a user can still operate the computer when the hard disk fails, or the user can operate just the browser software so she has fast and ready access to the Internet without having to wait for the operating system to boot, or other application software to load.
Abstract
Description
Claims
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB0211451A GB2373081B (en) | 1999-11-24 | 2000-06-20 | Self-contained network browser with diagnostic abilities |
AU58807/00A AU5880700A (en) | 1999-11-24 | 2000-06-20 | Self-contained network browser with diagnostic abilities |
JP2001540636A JP4418137B2 (en) | 1999-11-24 | 2000-06-20 | Network browser device, computer, and method for diagnosing and repairing computer |
DE10085232T DE10085232T1 (en) | 1999-11-24 | 2000-06-20 | Stand-alone network browser with diagnostic capabilities |
HK03100885.5A HK1049047A1 (en) | 1999-11-24 | 2003-02-07 | Self-contained network browser with diagnostic abilities |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US44906599A | 1999-11-24 | 1999-11-24 | |
US09/449,065 | 1999-11-24 |
Publications (2)
Publication Number | Publication Date |
---|---|
WO2001039042A2 true WO2001039042A2 (en) | 2001-05-31 |
WO2001039042A3 WO2001039042A3 (en) | 2002-05-23 |
Family
ID=23782734
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2000/016978 WO2001039042A2 (en) | 1999-11-24 | 2000-06-20 | Self-contained network browser with diagnostic abilities |
Country Status (8)
Country | Link |
---|---|
JP (1) | JP4418137B2 (en) |
CN (2) | CN1159664C (en) |
AU (1) | AU5880700A (en) |
DE (1) | DE10085232T1 (en) |
GB (1) | GB2373081B (en) |
HK (1) | HK1049047A1 (en) |
TW (1) | TW498228B (en) |
WO (1) | WO2001039042A2 (en) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2380832A (en) * | 2001-06-15 | 2003-04-16 | Hewlett Packard Co | User diagnostic system for the interpretation and solution of errors on computer based systems |
GB2395815A (en) * | 2002-10-30 | 2004-06-02 | Hewlett Packard Development Co | Using a platform independent application to ascertain platform specific characteristics and the communication of diagnostic information |
EP1669858A3 (en) * | 2004-02-20 | 2007-08-29 | Microsoft Corporation | Method and system for providing a common operating system |
CN100399286C (en) * | 2004-12-15 | 2008-07-02 | 三星电子株式会社 | Method and apparatus for performing external device's diagnostic functions in host computer |
EP1955482A1 (en) * | 2005-11-29 | 2008-08-13 | Samsung Electronics Co., Ltd. | Integrated mobile diagnostics and electronic customer care test script with browser |
WO2011056191A2 (en) * | 2009-11-05 | 2011-05-12 | Sony Corporation | System and method for providing automated support to electronic devices |
US20120321071A1 (en) * | 2006-12-30 | 2012-12-20 | Troppus Software Corporation | Technical support agent and technical support service delivery platform |
CN103701911A (en) * | 2013-12-30 | 2014-04-02 | 百度在线网络技术(北京)有限公司 | Method and device for downloading through browser |
US9280433B2 (en) | 2007-01-05 | 2016-03-08 | Microsoft Technology Licensing, Llc | Hardware diagnostics and software recovery on headless server appliances |
US9929881B2 (en) | 2006-08-01 | 2018-03-27 | Troppus Software Corporation | Network-based platform for providing customer technical support |
US10025604B2 (en) | 2006-08-04 | 2018-07-17 | Troppus Software L.L.C. | System and method for providing network-based technical support to an end user |
US10075477B2 (en) | 2015-06-02 | 2018-09-11 | Wistron Corporation | Method, system and server for self-healing of electronic apparatus |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020165784A1 (en) * | 2001-03-01 | 2002-11-07 | John Taggart | Launch service or purchase request directly from a network-enabled appliance |
US7263605B2 (en) * | 2002-12-09 | 2007-08-28 | Intel Corporation | Decoupled hardware configuration manager that generates a user interface prior to booting using hardware configuration option data read from plurality of hardware devices |
DE10334516B4 (en) * | 2003-07-29 | 2006-06-14 | Sorin Group Deutschland Gmbh | Display and operating device for medical devices and display / control unit therefor |
US7287276B2 (en) * | 2003-09-08 | 2007-10-23 | Microsoft Corporation | Coordinated network initiator management that avoids security conflicts |
US7827558B2 (en) * | 2004-06-30 | 2010-11-02 | Devicevm, Inc. | Mechanism for enabling a program to be executed while the execution of an operating system is suspended |
US7467196B2 (en) * | 2005-01-12 | 2008-12-16 | International Business Machines Corporation | Managing network errors communicated in a message transaction with error information using a troubleshooting agent |
FR2917521B1 (en) * | 2007-06-15 | 2009-10-02 | Airbus France Sa | COMPUTER MAINTENANCE SYSTEM OF AN AIRCRAFT |
US8458521B2 (en) * | 2010-02-15 | 2013-06-04 | Accenture Global Services Limited | Remote technical support employing a configurable executable application |
US8261131B2 (en) * | 2010-10-15 | 2012-09-04 | Sony Corporation | Recovery from HDD failure and technical support through WWAN |
CN103595708B (en) * | 2013-10-22 | 2017-08-25 | 北京奇虎科技有限公司 | The browser processing method of closing, system, browser and server extremely |
TWI566123B (en) * | 2014-09-03 | 2017-01-11 | 雅虎股份有限公司 | Method, system and wearable devices for presenting multimedia interface |
EP3182302B1 (en) * | 2015-12-14 | 2021-12-15 | Samsung Electronics Co., Ltd. | Apparatus and method for sharing state information of web browser in electronic device |
TWI681374B (en) * | 2017-09-04 | 2020-01-01 | 國立彰化師範大學 | High density vertical magnetic memory medium teaching aid |
CN107992375A (en) * | 2017-10-30 | 2018-05-04 | 努比亚技术有限公司 | A kind of browser fault handling method, terminal and computer-readable recording medium |
CN109710460A (en) * | 2018-12-17 | 2019-05-03 | 联想(北京)有限公司 | Information processing method and electronic equipment |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0847008A2 (en) * | 1996-12-03 | 1998-06-10 | Hewlett-Packard Company | Device access and control using embedded web access functionality |
US5870610A (en) * | 1996-06-28 | 1999-02-09 | Siemens Business Communication Systems, Inc. | Autoconfigurable method and system having automated downloading |
US5884073A (en) * | 1996-10-28 | 1999-03-16 | Intel Corporation | System and method for providing technical support of an electronic system through a web bios |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5784564A (en) * | 1996-05-03 | 1998-07-21 | High Technology Solutions, Inc. | Closed browser for computer and computer network |
JP2901541B2 (en) * | 1996-05-29 | 1999-06-07 | 日本電気オフィスシステム株式会社 | Information processing device |
-
2000
- 2000-05-30 TW TW089110487A patent/TW498228B/en not_active IP Right Cessation
- 2000-06-20 WO PCT/US2000/016978 patent/WO2001039042A2/en active Application Filing
- 2000-06-20 AU AU58807/00A patent/AU5880700A/en not_active Abandoned
- 2000-06-20 DE DE10085232T patent/DE10085232T1/en not_active Ceased
- 2000-06-20 JP JP2001540636A patent/JP4418137B2/en not_active Expired - Fee Related
- 2000-06-20 CN CNB00816083XA patent/CN1159664C/en not_active Expired - Fee Related
- 2000-06-20 GB GB0211451A patent/GB2373081B/en not_active Expired - Fee Related
- 2000-06-20 CN CNB2004100373342A patent/CN100452027C/en not_active Expired - Fee Related
-
2003
- 2003-02-07 HK HK03100885.5A patent/HK1049047A1/en unknown
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5870610A (en) * | 1996-06-28 | 1999-02-09 | Siemens Business Communication Systems, Inc. | Autoconfigurable method and system having automated downloading |
US5884073A (en) * | 1996-10-28 | 1999-03-16 | Intel Corporation | System and method for providing technical support of an electronic system through a web bios |
EP0847008A2 (en) * | 1996-12-03 | 1998-06-10 | Hewlett-Packard Company | Device access and control using embedded web access functionality |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2380832A (en) * | 2001-06-15 | 2003-04-16 | Hewlett Packard Co | User diagnostic system for the interpretation and solution of errors on computer based systems |
US6865696B2 (en) | 2001-06-15 | 2005-03-08 | Hewlett-Packard Development Company, L.P. | Enduser diagnostic system and method for computer-based error interpretation |
GB2380832B (en) * | 2001-06-15 | 2005-08-24 | Hewlett Packard Co | Enduser diagnostic system and method for computer-based error interpretation |
GB2395815A (en) * | 2002-10-30 | 2004-06-02 | Hewlett Packard Development Co | Using a platform independent application to ascertain platform specific characteristics and the communication of diagnostic information |
US6996500B2 (en) | 2002-10-30 | 2006-02-07 | Hewlett-Packard Development Company, L.P. | Method for communicating diagnostic data |
GB2395815B (en) * | 2002-10-30 | 2006-02-22 | Hewlett Packard Development Co | A method for communicating diagnostic data |
EP1669858A3 (en) * | 2004-02-20 | 2007-08-29 | Microsoft Corporation | Method and system for providing a common operating system |
CN100399286C (en) * | 2004-12-15 | 2008-07-02 | 三星电子株式会社 | Method and apparatus for performing external device's diagnostic functions in host computer |
EP1955482A1 (en) * | 2005-11-29 | 2008-08-13 | Samsung Electronics Co., Ltd. | Integrated mobile diagnostics and electronic customer care test script with browser |
EP1955482A4 (en) * | 2005-11-29 | 2012-03-07 | Samsung Electronics Co Ltd | Integrated mobile diagnostics and electronic customer care test script with browser |
US9929881B2 (en) | 2006-08-01 | 2018-03-27 | Troppus Software Corporation | Network-based platform for providing customer technical support |
US10025604B2 (en) | 2006-08-04 | 2018-07-17 | Troppus Software L.L.C. | System and method for providing network-based technical support to an end user |
US9842295B2 (en) | 2006-12-30 | 2017-12-12 | Troppus Software Corporation | Technical support agent and technical support service delivery platform |
US20120321071A1 (en) * | 2006-12-30 | 2012-12-20 | Troppus Software Corporation | Technical support agent and technical support service delivery platform |
US9280433B2 (en) | 2007-01-05 | 2016-03-08 | Microsoft Technology Licensing, Llc | Hardware diagnostics and software recovery on headless server appliances |
CN102576352A (en) * | 2009-11-05 | 2012-07-11 | 索尼公司 | System and method for providing automated support to electronic devices |
WO2011056191A3 (en) * | 2009-11-05 | 2011-07-21 | Sony Corporation | System and method for providing automated support to electronic devices |
WO2011056191A2 (en) * | 2009-11-05 | 2011-05-12 | Sony Corporation | System and method for providing automated support to electronic devices |
CN103701911A (en) * | 2013-12-30 | 2014-04-02 | 百度在线网络技术(北京)有限公司 | Method and device for downloading through browser |
US10075477B2 (en) | 2015-06-02 | 2018-09-11 | Wistron Corporation | Method, system and server for self-healing of electronic apparatus |
Also Published As
Publication number | Publication date |
---|---|
JP2003515817A (en) | 2003-05-07 |
CN1159664C (en) | 2004-07-28 |
GB2373081B (en) | 2004-02-25 |
GB2373081A (en) | 2002-09-11 |
GB0211451D0 (en) | 2002-06-26 |
CN1538328A (en) | 2004-10-20 |
WO2001039042A3 (en) | 2002-05-23 |
CN1391677A (en) | 2003-01-15 |
AU5880700A (en) | 2001-06-04 |
DE10085232T1 (en) | 2002-10-31 |
HK1049047A1 (en) | 2003-04-25 |
CN100452027C (en) | 2009-01-14 |
JP4418137B2 (en) | 2010-02-17 |
TW498228B (en) | 2002-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2001039042A2 (en) | Self-contained network browser with diagnostic abilities | |
US6023698A (en) | System and method for transparently registering and updating information over the internet | |
US6680730B1 (en) | Remote control of apparatus using computer networks | |
US5678002A (en) | System and method for providing automated customer support | |
US6701364B1 (en) | Method and apparatus for remote computer management using web browser application to display system hardware and software configuration | |
JP3293073B2 (en) | How to get an interface to transfer data from a network to an open system | |
KR100311191B1 (en) | Customization of web pages based on requester type | |
US7454476B2 (en) | Remote maintenance and servicing of a network peripheral device over the world wide web | |
US8539435B1 (en) | Method and system for remote software testing | |
EP0803808A2 (en) | System for configuring and remotely administering a unix computer over a network | |
US6434615B1 (en) | Method and apparatus for remote computer management using HTML in a web browser application and an internet server extension on an internet server API-compliant web server | |
US20080275938A1 (en) | Virtual machine web browser | |
US7921335B2 (en) | System diagnostic utility | |
US20040254978A1 (en) | System and method of remotely accessing a computer system to initiate remote mainteneance and management accesses on network computer systems | |
US20090254641A1 (en) | Network card capable of remote boot and method thereof | |
US7941508B2 (en) | Associating multiple devices with remote computers | |
US20100205420A1 (en) | System and method for realizing remote test on computer apparatus without storage device | |
US20040203693A1 (en) | Over the air firmware and policy programming | |
EP1043649A2 (en) | Method and apparatus for dynamically configuring device using device code | |
US6990655B2 (en) | Apparatus and method of providing a pluggable user interface | |
US7464133B1 (en) | Server/client system | |
WO2001077878A2 (en) | Server based control of robotic libraries | |
GB2381618A (en) | System for recognising devices connected to a network | |
US20030061327A1 (en) | Apparatus and method of providing common distributed services for system management applications across heterogeneous environments | |
GB2393543A (en) | Self-contained network 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 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 | ||
DFPE | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101) | ||
ENP | Entry into the national phase |
Ref document number: 200211451 Country of ref document: GB Kind code of ref document: A |
|
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 BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG |
|
WWE | Wipo information: entry into national phase |
Ref document number: 00816083X Country of ref document: CN |
|
ENP | Entry into the national phase |
Ref document number: 2001 540636 Country of ref document: JP Kind code of ref document: A |
|
RET | De translation (de og part 6b) |
Ref document number: 10085232 Country of ref document: DE Date of ref document: 20021031 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 10085232 Country of ref document: DE |
|
122 | Ep: pct application non-entry in european phase | ||
REG | Reference to national code |
Ref country code: DE Ref legal event code: 8607 |