Emergency ringing facility for mobile phones

Systems and methods for an emergency ringing facility able to remotely override a silent mode of a wireless communication device are disclosed. The systems comprise profile-management applications residing on wireless devices and allowing one user of a wireless device to override a silent mode of a remote wireless device. The profile management application executed on the wireless device queries whether the silent mode of the remote wireless device can be overridden, and if so, communicates with a profile-management application executed on the remote device and overrides the silent mode of that device. In an alternative embodiment, a silent mode of a wireless device can be overridden by a profile management server. A profile-management application is executed on a profile-management server communicating with a profile-management application executed on a wireless device and requests the overriding of the silent mode of a remote wireless device.

FIELD OF THE INVENTION

The present invention generally relates to wireless communication devices and more particularly relates to overriding a silent mode of a remote wireless communication device to establish an interactive communication between two wireless communication devices.

BACKGROUND OF THE INVENTION

Wireless communication devices (e.g., cellular phones) provide a very convenient way of communicating between their users. But, even in emergency situations, such communication between the users is impossible if, for example, the receiving call wireless device is put into a silent mode.

Nevertheless, there are many situations when a user might want to put a device into a silent mode so the device does not ring when it receives a call. Examples of such situations include circumstances where the “ringing” would interfere with other activities (e.g. sleeping, conducting a meeting, etc.); would present interference to an audience (e.g. in theatres or conferences); or would present a risk to safe travel, for example, on commercial airlines during take-off and landing.

However, very often the device remains in a silent mode for no other reason than just because the user forgot to change the silent mode of the device to an active mode. Furthermore, there are situations where the silent mode of the device should be overridden regardless of whether the user is asleep, attending a meeting, or just forgot to turn the ringer on. For example, there are emergency situations where contacting the cellular phone user is critical. In those situations, overriding the silent mode of the device may be appropriate.

There are several systems and methods in the art designed to change the settings and profiles of users of wireless devices. For example, U.S. Published Patent Application US 2005/0107077 A1 to Hintermeier et al. discloses a method of remotely reconfiguring a portable radio device by adjusting its ringer volume, shutting it down, etc. The application discloses a control station (“radio commander”) which can detect the presence of a portable radio device within the controlled area, and can send a command to the portable radio device to change an internal setting of the device, such as, for example, to reduce the volume of the device, or to turn the device off. The radio commander can send such a command over out-of-band channels and protocols so it does not interfere with normal cellular telephone traffic. However, the radio commander is only a short range communication device and, thus, it allows communication with portable radio devices only if they come within the short range of the radio commander. Furthermore, the invention does not provide for sending a command to change an internal setting of one portable device by another user from another portable device.

Another example is U.S. Published Patent Application US 2004/0203695 A1, which discloses a system and method for changing the settings of a communication device relative to the instant messaging presence of a user profile, logged into the communication device on a telecommunications network. The system comprises a communication device that receives a changed instant messaging presence indicator regarding the user profile from the telecommunications network, determines the settings corresponding to changed instant messaging presence, and then changes the settings, such as the ring volume, display options such as increased or decreased brightness, etc.

Yet another example is U.S. Published Patent Application US 2005/0096030 A1, which discloses a system and method for controlling a wireless communication device by Dual Tone, Multi-Frequency (“DTMF”) commands. The system can accept and process DTMF control signals sent over the air on a voice connection as commands such as for example, to cause a cellular phone to ring even though it has been configured into a silent mode. The control signals can be received under an “auto-answer” scheme, or as a unique signal (e.g., a special packet data command) that established the voice connection. After receiving the control signal, the device can enter a command mode where the remote user can send commands that operate the device remotely.

However, until now, there has been no system allowing a user of one wireless communication device to override the setting of another wireless communication device. Accordingly, what is needed is a system and method that allows two wireless devices to communicate with each other (directly or indirectly) using e.g. Short Message Service (“SMS”) protocol or Internet Protocol (“IP”) to override the silent mode of another wireless communication device.

SUMMARY OF THE INVENTION

An exemplary emergency ringing facility comprises a profile-management application for wireless devices, where the profile-management application executed on one wireless communication device communicates with another profile-management application executed on another wireless device to inquire whether the remote wireless communication device is in a silent mode, and if so, to override that mode.

DETAILED DESCRIPTION

Certain embodiments as disclosed herein provide for systems and methods for an emergency ringing facility comprising a profile-management application for wireless communication devices, also referred herein as “handsets.” For example, one method as disclosed herein allows for the profile-management application executed on one handset to communicate with a profile-management application on another handset (hereafter a “remote handset”) to inquire whether the remote device is in a silent mode, and if so, to override that mode.

Another method disclosed herein allows for the profile-management application executed on one handset to communicate with a profile-management application executed on a profile management server to request that the profile management server override a silent mode of a remote device.

FIG. 1Ais a block diagram illustrating an example system10for an emergency ringing facility according to an embodiment of the present invention. In the illustrated embodiment, the system10comprises a handset20configured with a data storage area25and a (remote) handset30configured with a data storage area35. The handset20and handset30communicate over a network50.

The network50can be, for example, a wireless communication network, wired communication network, common network packet switched, circuit switched, Personal Area Network (“PAN”), Local Area Network (“LAN”), Metropolitan Area Network (“MAN”), Wide Area Network (“WAN”), public network, private network, or any combination, such as the Internet.

In an alternative embodiment, the system10may contain more than two handsets20and30, as will be understood by those having skill in the art. For the sake of simplicity of this description, however, the embodiment described here will include a single handset20and a single handset30.

The handsets20and30can be any of a variety of wireless communication devices, including a cell phone, Personal Digital Assistant (“PDA”), personal computer (“PC”), or any combination of these and other devices capable of establishing a communication between the handsets20and30. Handsets can be co-located or geographically remote.

The data storage areas25and35can be any type of internal or external memory device and may include both persistent and volatile memories. The function of the data storage areas25and35is to maintain data for long term storage, such as, for example, frequently dialed numbers. Another function of the data storage areas25and35is to provide efficient and fast access to instructions for a profile management application executed by the handset20or30.

The handsets20and30communicate over the network50which can include a wireless network, IP network, SMS network, etc. The network50can facilitate a variety of communication standards. For example, cellular systems are currently used for the communication of voice and data in accordance with many different standards. Such standards include Global System for Mobile Communications (“GSM”), GSM Packet Radio Service (“GPRS”), Code Division Multiple Access (“CDMA-200”), Personal Handyphone (“PHS”), Digital Advanced Mobile Phone Service (“DAMPS”), Wireless Fidelity (“WiFi”), and others.

There are currently many more standards in use and in development as well as many private, closed standards in use. For example, the network50can utilize the IP to facilitate wireless as well as wireline communication between devices such as PC.

FIG. 1Bis a block diagram illustrating an example system12for an emergency ringing facility according to another embodiment of the present invention. In the illustrated embodiment, the system12comprises a handset20configured with a data storage area25and a second handset30configured with a data storage area35, both the handset20and handset30communicate over a network50.

The system12also comprises a profile management server40that is configured with a data storage area42and able to communicate with the network50. Furthermore, the profile management server40may also communicate with a billing server45coupled with a data storage area47to perform billing transactions on the user account for the handset20. The billing server45can communicate with the profile management server40and with the network50.

FIG. 2Ais a block diagram illustrating exemplary modules residing on an example handset20according to an embodiment of the present invention. In the illustrated embodiment, the handset20comprises a communication module22, a profile management module24, an authentication module26, a control module28and data storage25. The communication module22is configured to establish a data communication link with a remote handset when no voice communication is available. The communication link can be established over a wired or wireless medium. Furthermore, the communication link can be direct or indirect. References to the modules22,24,26and28, and data storage25throughout the description of theFIG. 2Aare intended to apply not only to the handset20, but also to the remote handset30.

In one embodiment, when a voice call to a remote handset fails, the user of the handset20contacts the profile management application on the remote handset to inquire about the status of the remote handset. In order to contact the profile management application on the remote handset, the communication module22on handset20establishes a data communication link between the profile management module24on the handset20and the profile management module on the remote handset. Once the link is established, the handset20can inquire whether the remote handset is in the silent mode, and if so, request to override the silent mode of the remote handset.

The profile management module24provides a user interface for accepting user input, overseeing the communication process and querying the mode of the remote device. For example, the profile management module24on the handset20can obtain an override code of a remote handset, send the override code to the remote handset over a network and override a silent mode of the remote handset. The override code can be obtained, for example, from the data storage25, from user input, or from a network server.

The handset20comprises the data storage area25, which includes a phonebook containing user profile information input by the user of the handset20. A phonebook entry contains information whether the user of the wireless device can override the mode of other wireless communication devices. For example, if a user of the handset20is authorized to override a silent mode of a particular remote wireless communication device, then the phonebook entry containing the profile of the user of the remote wireless communication device includes an overriding code. If the user of the handset20is not authorized to override a silent mode of the remote wireless communication device, then the entry containing the profile of the user of the remote wireless communication device does not contain the overriding code. In an alternative embodiment, profile information of each user may be stored in a dedicated application (or not stored on handset20at all) and input through an application specific GUI (graphical user interface) each time the user of handset20wants to override a silent mode of a particular wireless communication device.

The authentication module26on the handset20verifies whether the silent mode of a handset30can be overridden. To verify that, the authentication module26determines whether the overriding code can be provided for the user who requested the overriding. In one embodiment, the overriding code can be provided by the user who requested overriding of the silent mode of the remote handset30. Alternatively, the override code can be obtained from the handset's own database. Also, the overriding code can be provided by the profile management server.

If the authentication module26on the handset20receives the overriding code for the remote handset30and the request to override the silent mode, it passes the code and the request to the control module28, which in turn, queries the mode of the device, and if possible, turns on the ringing or vibrating feature on the device. If the authentication module26receives a message about the absence of the overriding code, it passes that message back to the communication module22, which in turn, sends a request rejection message to the user who requested the overriding.

The control module28is configured to turn on and off the ringer of the handset20. For example, if another handset requests to override the silent mode of the handset20, the control module28of the handset20may turn on the ringer of the handset20. Alternatively, if another handset requested to turn on the silent mode of the handset20, then the control module28of the handset20may turn off the ringer of the handset20.

FIG. 2Bis a block diagram illustrating exemplary modules residing on a profile management server40according to an embodiment of the present invention. In the illustrated embodiment, the profile management server40comprises a communication module60, a profile management module70and an authentication module80.

The communication module60residing on the profile management server40is configured to work with the communication module22residing on a handset to establish a data communication link between the profile management server40and the handset. The communication link can be established over a wired or wireless medium. Furthermore, the communication link can be direct or indirect.

In one embodiment of the present invention, a request to override the silent mode of the remote handset may be sent by the profile management server40. For example, if the user of a handset20is not eligible to override the silent mode of the remote handset30, the user of the handset20may contact the profile management server40and request that the server override the silent mode of the remote device30.

The communication module60is configured to establish a data communication link with a handset who requests an override and the remote handset whose mode is requested to be overridden. The communication link can be established over a wired or wireless medium. Furthermore, the communication link can be direct or indirect.

The profile management module70provides a user interface for accepting input from the user of the handset, overseeing the communication process with another handset, querying the mode of the remote device and overriding the silent mode of a handset. The profile management server40also maintains a data storage area42that can be used as a phonebook containing profile information about users. In one embodiment, the phonebook holds entries for the subscribers on the profile management server40. Among other information, a phonebook's entry may contain either the overriding code to override the mode of the handset or the information that the mode can not be overridden. For example, if the entry for a user of the particular handset contains an overriding code, the profile management server40can send the overriding code to that handset with a request to override the mode of the device. If the entry for a handset does not contain an overriding code, the profile management server40can not request the overriding of the handset's mode, unless the profile management server40has a special overriding privilege.

To override the silent mode of a handset, the profile management module70has to obtain an override code of that handset. The override code may be obtained from a variety of sources. For example, the profile management module70can obtain the override code from a target handset30, a requesting handset20, or data storage42(as described above), or from the user's request.

The authentication module80verifies whether the silent mode of a handset can be overridden. To verify that, the authentication module80has to determine whether the overriding code can be provided on behalf of the user who requested the overriding. There are many ways to provide an overriding code. For example, the overriding code can be provided by the user who requested overriding of the silent mode of the remote handset. Alternatively, it can be obtained from the target handset's own database. Also, the overriding code can be provided by the profile management server from the profile management's phonebook42.

The overriding code or the message about the absence of the overriding code is passed by the communication module60to the profile management module70, and then to the authentication module80. Upon receiving the overriding code for a remote handset and the request to override the silent mode, the authentication module80passes the code and the request to the communication module60, which in turn, sends them to the communication module of the remote handset whose mode has to be overridden. If the authentication module80receives a message about the absence of the overriding code, it passes that message back to the communication module60, which in turn, sends a request rejection message to the user who requested the overriding.

In another embodiment, the profile management module70residing on the profile management server40can override the mode of any handset included in the service subscription even if an overriding code for that device is not stored in the server's or handset's phonebooks. To accomplish this type of overriding, the profile management server40may use a special code or privilege. For example, upon receiving a request to override the mode of a remote handset30, the profile management module70residing on the profile management server40can use its special overriding privilege to override the mode of the remote handset without requesting the device override code.

FIG. 3Ais a block diagram illustrating an example handset phonebook32according to an embodiment of the present invention. In the illustrated embodiment, the phonebook32contains information about users of other handsets. That information can also be used by the profile management module of the handset20to verify if the user of the handset20is authorized to override a silent mode of a particular remote wireless device. The phonebook information is stored in a data storage area accessible by the handset20. Alternatively, the phonebook32can be stored in a data storage area attached to the remote handset30.

The phonebook32comprises a sequence of records (“entries”) containing profile information of a user of the remote handset. For example, an entry for a given user may contain a user phone number34, a user name36, and a user override code38.

Alternatively, an entry for a given user may contain only a user phone number34and user name36, but no override code38. If the entry for the user of a remote handset does not contain an override code, then the user of the handset20is not authorized to directly override the silent mode of the remote handset. However, the silent mode of the remote handset can still be overridden by the profile management server40. The user requesting the overriding of the silent mode of the remote handset can contact the profile management server40and request that the profile management server40access the server database, retrieve the overriding code for the remote handset and override the silent mode of the remote handset.

The phonebook information such as the phone number34and user name36can be input by the user of the handset for each entry of the phonebook32. The override code38can be updated by the profile management module24residing on the handset20or the profile management module24residing on the profile management server40.

FIG. 3Bis a block diagram illustrating an example profile management server phonebook39according to an embodiment of the present invention. In the illustrated embodiment, the phonebook39contains information about the subscribers and is used by the profile management server to override silent modes of other wireless devices. The phonebook information is stored in a data storage area attached to a profile management server40.

The phonebook39comprises a sequence of records (“entries”) containing profile information for all service subscribers serviced by the given profile management server. In the illustrated embodiment, an entry for a subscriber (a “user”) contains a user phone number34and a user override code38. Because each user entry contains the user override code38, the profile management server can override the silent mode of a handset of any user listed in the phonebook39. Thus, if a user of a handset is not authorized to directly override the silent mode of a remote handset, the profile management server can. For example, although the user of the handset illustrated inFIG. 3Ais not authorized to override the silent mode of Mary Jones' handset (the phonebook32does not contain an override code for Jones' handset), the profile management server can override the silent mode of Jones' handset because the phonebook39has Jones' override code as illustrated inFIG. 3B.

FIG. 4Ais a flow chart illustrating an example process for emergency handset ringing facility according to an embodiment of the present invention. In the illustrated embodiment, the process contains steps necessary to identify a lack of response from the remote handset, determine whether the remote handset is in a silent mode and override the silent mode of the remote wireless communication device if possible.

In a step310, a user “A” of the handset20calls a user “B” of a remote handset30. In order to establish a communication voice link between the user “A” and the remote user “B,” the remote user “B” has to accept the incoming call by, e.g., pressing a “send” button, etc. But, the remote user “B” may not be able to accept the incoming call from the user “A” if, e.g., the remote handset is put in a silent mode. In such a case, the user “A” is unable to establish a voice communication link with the user “B” and is unable to receive an answer from the user “B.”

In a decision step312, the user “A” of the handset20queries the remote device of the user “B” to determine whether the user “B” can accept the call from the user “A.” If the user “A” determines that the user “B” accepted the call from the user “A,” the voice communication link between “A” and “B” is established and the profile management of the handset “A” does not have to provide any further assistance to the user “A.” This is illustrated in a step315.

If the user “A” determines a lack of response from the user “B,” then in a step314, the user “A” queries a profile management module residing on the handset20to verify whether the remote handset30is put into a silent mode. To do that, a communication module residing on the handset20establishes a data communication link with a communication module residing on the handset30. Once such a link is established, the profile management of the remote handset30sends the mode status of the remote handset30to the profile management of the handset20.

If the user “A” determines that the remote handset “B” is not put in the silent mode, then there is some other reason for the user “B” to reject the call from the user “A.” In such a case, the profile management module does not offer the user “A” any further assistance in establishing a voice communication link with the remote user “B.” This is illustrated in the step315.

In a decision step318, the user “A” determines whether it is necessary to override the silent mode of the remote handset “B.” If the user “A” decides to request that the silent mode of the remote handset “B” be overridden, the user “A” instigates the request to bring the remote handset “B” out of the silent mode. Though this process can be automated, in the preferred embodiment, the user “A” manually starts the process since the user “A” should be aware that he is potentially waking up the user “B.”

If the user “A” requests the silent mode of the remote handset “B” be overridden, the profile management module determines whether the override code for the remote handset “B” can be obtained. As it was described above, in order to obtain the override code for the remote handset, the profile management module can query its own phonebook32(FIG. 3A), a user “B” phonebook, or it can query a phonebook39of the profile management server40(FIG. 3B).

If the override code for the remote user “B” can not be obtained (neither from the user “A” phonebook32, nor from the user “B” phonebook), then, the user “A” can either abandon the attempts to contact the user “B”, or the user “A” can call the profile management server40and ask for further assistance.

If the override code for the remote user “B” can be obtained, then, in a step320the profile management module residing on the handset “A” sends that code along with a request to override the silent mode to the profile management module residing on the remote wireless device. The profile management application can send the override code in a variety of ways. For example, the override code can be sent by an application facilitating wireless communication, a wireless firmware upgrade application, a handset (wireless communication device) or any other similar method.

Once the silent mode of the remote handset “B” is overridden, the user “A” of the handset20can redial the phone number for the remote handset30of the user “B.”

FIG. 4Bis a flow chart illustrating an example process for emergency server ringing facility according to an embodiment of the present invention. In the illustrated embodiment, the process for emergency server ringing facility comprises the receiving of a request from a user “A” of a handset20, who was unsuccessful in contacting a remote user “B” of a remote wireless communication device30, attempting to override the silent mode of the remote wireless communication device30, and communicating the results of the attempt to the user “A.”

In a step350, a profile management server receives a request from the user “A” who was unsuccessful in communicating with the user “B” of the remote wireless communication device.

In a decision step352, the profile management server verifies whether the profile management module can obtain the overriding code for the remote handset “B” either from the user “A,” or from the user “B.” If the overriding code for the remote handset “B” can not be obtained, then, in a step363, the profile management server checks whether the server has a privilege to override the silent mode of the remote device without obtaining the override code from either the user “A” or the user “B.”

If the server determines that it is not privileged to override the silent mode of the remote device, then, in a step365, the profile management server sends a service rejection message to the user “A” and terminates the data communication link with the user “A.”

If the server determines that it can obtain the overriding code to override the silent mode of the remote wireless communication handset “B,” then in a step354, the profile management server obtains that code from either the user “A” phonebook, or from the user “B” phonebook

In a step356, the profile management server sends the override code to the profile management module on the remote wireless communication device and overrides the silent mode of the remote device. In one embodiment, only a user who has the overriding code for the remote handset “B” can use that code and successfully request that the silent mode of the remote handset “B” be overridden.

Alternatively, in the step356, the profile management server sends a special privileged code (e.g. an administrator password) to override the silent mode of the remote device.

In one embodiment, the silent mode of the remote handset “B” can be overridden until the remote handset “B” sets the device into the silent mode again. In another embodiment, the silent mode of the remote handset “B” can be overridden for a set period of time, usually determined by the user of the remote handset “B.” In yet another embodiment, the remote handset “B” will ring from any phone provided that the calling phone is supplying the correct overriding code for the remote handset “B.”

In one embodiment, the silent mode of the remote handset “B” can be deactivated only for the time of the current call, after which it can be activate again. However, the silent mode can be reactivated when the user “B” accepts the call from the user “A.” The silent mode can also be reactivated after one round of ringing of the user handset “B.” Furthermore, the silent mode can also be reactivated once the user “A” terminates calling the remote handset “B.”

Then, in a step358, the profile management server sends a confirmation to the user “A” that the silent mode of the remote wireless communication device was successfully overridden.

A step360is optional. If the wireless service provider charges a fee for such a service as the overriding of the silent mode of another wireless device, then after the profile management sends the confirmation to the user “A,” the billing server45bills the user “A” for the provided service.

FIG. 5is a block diagram illustrating an exemplary wireless communication device450that may be used in connection with the various embodiments described herein. For example, the wireless communication device450may be used in conjunction with a handset as described above with respect toFIG. 1. However, other wireless communication devices and/or architectures may also be used, as will be clear to those skilled in the art.

In the illustrated embodiment, wireless communication device450comprises an antenna452, a multiplexor454, a low noise amplifier (“LNA”)456, a power amplifier (“PA”)458, a modulation circuit460, a baseband processor462, a speaker464, a microphone466, a central processing unit (“CPU”)468, a data storage area470, and a hardware interface472. In the wireless communication device450, radio frequency (“RF”) signals are transmitted and received by antenna452. Multiplexor454acts as a switch, coupling antenna452between transmit and receive signal paths. In the receive path, received RF signals are coupled from a multiplexor454to LNA456. LNA456amplifies the received RF signal and couples the amplified signal to a demodulation portion of the modulation circuit460.

Typically modulation circuit460will combine a demodulator and modulator in one integrated circuit (“IC”). The demodulator and modulator can also be separate components. The demodulator strips away the RF carrier signal leaving a base-band receive audio signal, which is sent from the demodulator output to the base-band processor462.

If the base-band receive audio signal contains audio information, then base-band processor462decodes the signal and converts it to an analog signal. Then the signal is amplified and sent to the speaker464. The base-band processor462also receives analog audio signals from the microphone466. These analog audio signals are converted to digital signals and encoded by the base-band processor462. The base-band processor462also codes the digital signals for transmission and generates a base-band transmit audio signal that is routed to the modulator portion of modulation circuit460. The modulator mixes the base-band transmit audio signal with an RF carrier signal generating an RF transmit signal that is routed to the power amplifier458. The power amplifier458amplifies the RF transmit signal and routes it to the multiplexor454where the signal is switched to the antenna port for transmission by antenna452.

The baseband processor462is also communicatively coupled with the central processing unit468. The central processing unit468has access to a data storage area470. The central processing unit468is preferably configured to execute instructions (i.e., computer programs or software) that can be stored in the data storage area470. Computer programs can also be received from the baseband processor462and stored in the data storage area470or executed upon receipt. Such computer programs, when executed, enable the wireless communication device450to perform the various functions of the present invention as previously described. For example, data storage area470may include an active module (not shown) that tracks the active input device while the wireless communication device450is connected to a remote device.

In this description, the term “computer readable medium” is used to refer to any media used to provide executable instructions (e.g., software and computer programs) to the wireless communication device450for execution by the central processing unit468. Examples of these media include the data storage area470, microphone466(via the baseband processor462), antenna452(also via the baseband processor462), and hardware interface472. These computer readable mediums are means for providing executable code, programming instructions, and software to the wireless communication device450. The executable code, programming instructions, and software, when executed by the central processing unit468, preferably cause the central processing unit468to perform the inventive features and functions previously described herein.

The central processing unit is also preferably configured to receive notifications from the hardware interface472when new devices are detected by the hardware interface. Hardware interface472can be a combination electromechanical detector with controlling software that communicates with the CPU468and interacts with new devices.

FIG. 6is a block diagram illustrating an exemplary computer system550that may be used in connection with the various embodiments described herein. For example, the computer system550may be used in conjunction with a remote device as previously described with respect toFIG. 1. However, other computer systems and/or architectures may be used, as will be clear to those skilled in the art.

The computer system550preferably includes one or more processors, such as processor552. Additional processors may be provided, such as an auxiliary processor to manage input/output, an auxiliary processor to perform floating point mathematical operations, a special-purpose microprocessor having an architecture suitable for fast execution of signal processing algorithms (e.g., digital signal processor), a slave processor subordinate to the main processing system (e.g., back-end processor), an additional microprocessor or controller for dual or multiple processor systems, or a coprocessor. Such auxiliary processors may be discrete processors or may be integrated with the processor552.

The processor552is preferably connected to a communication bus554. The communication bus554may include a data channel for facilitating information transfer between storage and other peripheral components of the computer system550. The communication bus554further may provide a set of signals used for communication with the processor552, including a data bus, address bus, and control bus (not shown). The communication bus554may comprise any standard or non-standard bus architecture such as, for example, bus architectures compliant with industry standard architecture (“ISA”), extended industry standard architecture (“EISA”), Micro Channel Architecture (“MCA”), peripheral component interconnect (“PCI”) local bus, or standards promulgated by the Institute of Electrical and Electronics Engineers (“IEEE”) including IEEE 488 general-purpose interface bus (“GPIB”), IEEE 696/S-100, and the like.

Computer system550preferably includes a main memory556and may also include a secondary memory558. The main memory556provides storage of instructions and data for programs executing on the processor552. The main memory556is typically semiconductor-based memory such as dynamic random access memory (“DRAM”) and/or static random access memory (“SRAM”). Other semiconductor-based memory types include, for example, synchronous dynamic random access memory (“SDRAM”), Rambus dynamic random access memory (“RDRAM”), ferroelectric random access memory (“FRAM”), and the like, including read only memory (“ROM”).

The secondary memory558may optionally include a hard disk drive560and/or a removable storage drive562, for example a floppy disk drive, a magnetic tape drive, a compact disc (“CD”) drive, a digital versatile disc (“DVD”) drive, etc. The removable storage drive562reads from and/or writes to a removable storage medium564. Removable storage medium564may be, for example, a floppy disk, magnetic tape, CD, DVD, etc.

The removable storage medium564is preferably a computer readable medium having stored thereon computer executable code (i.e., software) and/or data. The computer software or data stored on the removable storage medium564is read into the computer system550as electrical communication signals578.

In alternative embodiments, secondary memory558may include other similar means for allowing computer programs or other data or instructions to be loaded into the computer system550. Such means may include, for example, an external storage medium572and an interface570. Examples of external storage medium572may include an external hard disk drive or an external optical drive, or and external magneto-optical drive.

Other examples of secondary memory558may include semiconductor-based memory such as programmable read-only memory (“PROM”), erasable programmable read-only memory (“EPROM”), electrically erasable read-only memory (“EEPROM”), or flash memory (block oriented memory similar to EEPROM). Also included are any other removable storage units572and interfaces570, which allow software and data to be transferred from the removable storage unit572to the computer system550.

Computer system550may also include a communication interface574. The communication interface574allows software and data to be transferred between computer system550and external devices (e.g. printers), networks, or information sources. For example, computer software or executable code may be transferred to computer system550from a network server via communication interface574. Examples of communication interface574include a modem, a network interface card (“NIC”), a communications port, a PCMCIA slot and card, an infrared interface, and an IEEE 1394 fire-wire, just to name a few.

Communication interface574preferably implements industry promulgated protocol standards, such as Ethernet IEEE 802 standards, Fiber Channel, digital subscriber line (“DSL”), asynchronous digital subscriber line (“ADSL”), frame relay, asynchronous transfer mode (“ATM”), integrated digital services network (“ISDN”), personal communications services (“PCS”), transmission control protocol/Internet protocol (“TCP/IP”), serial line Internet protocol/point to point protocol (“SLIP/PPP”), and so on, but may also implement customized or non-standard interface protocols as well.

Software and data transferred via communication interface574are generally in the form of electrical communication signals578. These signals578are preferably provided to communication interface574via a communication channel576. Communication channel576carries signals578and can be implemented using a variety of wired or wireless communication means including wire or cable, fiber optics, phone line, cellular phone link, wireless data communication link, radio frequency (RF) link, or infrared link, just to name a few.

Computer executable code (i.e., computer programs or software) is stored in the main memory556and/or the secondary memory558. Computer programs can also be received via communication interface574and stored in the main memory556and/or the secondary memory558. Such computer programs, when executed, enable the computer system550to perform the various functions of the present invention as previously described.

In this description, the term “computer readable medium” is used to refer to any media used to provide computer executable code (e.g., software and computer programs) to the computer system550. Examples of these media include main memory556, secondary memory558(including hard disk drive560, removable storage medium564, and external storage medium572), and any peripheral device communicatively coupled with communication interface574(including a network information server or other network device). These computer readable mediums are means for providing executable code, programming instructions, and software to the computer system550.

In an embodiment that is implemented using software, the software may be stored on a computer readable medium and loaded into computer system550by way of removable storage drive562, interface570, or communication interface574. In such an embodiment, the software is loaded into the computer system550in the form of electrical communication signals578. The software, when executed by the processor552, preferably causes the processor552to perform the inventive features and functions previously described herein.