CROSS REFERENCE TO RELATED APPLICATIONS This application is a continuation of U.S. patent application Ser. No. 11/526,443 which is a continuation of U.S. patent application Ser. No. 10/315,651, filed on Dec. 10, 2002, each incorporated by reference herein.
FIELD OF THE INVENTION The present invention relates to wireless communication systems and, more particularly, relates to messaging over wireless networks.
BACKGROUND OF THE INVENTION Increasingly, mobile devices, such as cellular telephones, can transmit or receive text messages For example, the short message service (SMS) is available for cellular phones, facsimile machines and Internet protocol (IP) addresses. The SMS protocol allows small text messages, with a size less than 160 alphanumeric characters, to be communicated to or from a mobile device. Similarly, the wireless application protocol (WAP) is a specification allowing mobile devices to communicate multimedia messages with one another
Messaging capability extends the functionality of mobile devices and allows mobile users to send additional information to each other. Commercial vendors have also begun to discover that sending messages to mobile devices is beneficial. For example, systems exist whet e a commercial vendor can send a message to mobile devices proximate the vendor. Nonetheless, there are problems with the current schemes for sending proximity-based messages to mobile devices, and improved techniques are needed that allow messages to be sent to proximate mobile devices.
SUMMARY OF THE INVENTION Aspects of the present invention provide high-rate proximity detection for mobile devices, and can provide notification to mobile devices determined to be proximate a wireless station.
In one aspect of the invention, techniques are presented for identifying mobile devices that ate within a coverage region of a wireless station. Positions for mobile devices, if any, within the coverage region are determined. It is then determined whether the positions are within one or more defined areas, called “notification areas” herein.
In another aspect of the invention, selected mobile devices within notification areas are sent messages The selected mobile devices are selected via certain criteria, including, for instance, campaign specifications and subscriber information As an example, a message can be sent to a mobile device if the subscriber corresponding to the mobile device has indicated an acceptance of a category of notifications for the message and for the publisher who is publishing the notifications. The category could be, for example, traffic conditions and the publisher could be, for instance, a Department of Transportation having responsibility for a particular freeway. These are two examples of multiple criteria for selecting mobile devices to which messages could be sent
A more complete understanding of the present invention, as well as further features and advantages of the present invention, will be obtained by reference to the following detailed description and drawings.
BRIEF DESCRIPTION OF THE DRAWINGSFIG. 1 is a flowchart of a method for proximity detection and for notification of proximate mobile devices, in accordance with one embodiment of the present invention;
FIG. 2 is a block diagram of a high-rate proximity detection subsystem interacting with a mobile device, in accordance with one embodiment of the present invention;
FIG. 3 is a block diagram of a notification system interacting with a carrier gateway and a mobile device, in accordance with one embodiment of the present invention;
FIG. 4 is an example of a proximity detection system database, in accordance with one embodiment of the present invention;
FIGS. 5A and 5B are examples of a campaign specification database, in accordance with one embodiment of the present invention;
FIG. 6 is an example of a subscriber information database, in accordance with one embodiment of the present invention; and
FIG. 7 is block diagram of an exemplary computer system suitable for implementing aspects of the present invention, in accordance with one embodiment of the present invention.
DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS The present invention, among other things, satisfies a desired ability to send a text or multimedia message to wireless devices when the wireless devices are determined to be in particular notification areas. There are a number of exemplary scenarios for which the present invention can provide notification: (1) a consumer can be sent a coupon for a new store in a shopping mall when the consumer enters the parking lot for the mall; (2) a consumer can be notified, as the consumer enters a shopping center, that an office supply store has a back-to-school sale that ends in about two hours; (3) tourists can be sent brief multimedia descriptions of the monuments in the Washington, D.C. mall as they enter each area that surrounds a monument; (4) fair-goers can be sent communications of the current events inside the venue they are approaching; (5) drivers who enter a certain section of highway can be notified that construction two miles ahead is causing a backup and they should take a detour; (6) drivers can be notified that, because of severe fog conditions ahead, they should reduce speed immediately; and (7) a message can be sent to all subscribers in a certain area that their water supply will be cut off in half an hour to replace a section of pipe.
To support these applications, a notification system could offer certain capabilities Some exemplary capabilities ate described below, but it should be noted that the present invention is not limited to these capabilities, nor does the present invention need provide all of these capabilities. One such capability, for instance, is precisely defined and arbitrarily located notification areas. In the scenario (1) above, the notification area is defined to be the parking lot of a shopping mall, so that commuters on a nearby highway do not receive the coupon. The shopping mall is a precisely defined notification area. In the Washington tour guide case, scenario (3) above, the areas could be such that tourists approaching the Lincoln Memorial do not receive the description of the Washington Monument. Another desirable capability is the ability to detect entrance to a notification area within a short time period, such as one minute. This is beneficial in order to support notifications for drivers Yet another desirable capability is the ability to use wireless handsets with automatic position identification capability that will be deployed for Enhanced 911 emergency position service.
There are conventional systems designed for providing these capabilities, but these conventional systems employ an architecture that is not scalable. These conventional systems are formed on a gateway-based architecture for position determination, in which the carrier network provides a server for handling all position requests. Given a terminal identifier (e g., a subscriber phone number), the server will first determine which mobile switching center (MSC) is serving the user. It will then forward the request to the position-determining technology deployed by that MSC The global system for mobile communication (GSM) Position Services architecture is an example of such a conventional architecture See, for instance, the European Telecommunication Standardization Institute (ETSI) technical standard (IS) 101 724 or GSM 3 71, the disclosures of which are hereby incorporated by reference
The architecture in the cited standards serves common applications that require the occasional position of an individual subscribers or even the tracking of a small number of subscribers. But because of the gateway architecture, conventional systems using these types of architectures cannot scale to handle a large number of requests, such as thousands or hundreds of thousands of requests per second Because each request for position has to go through one server, and from that server to local position-determining technologies and then back to the server, it will be very difficult for the server to handle thousands or hundreds of thousands of requests in order to track mobile devices Some cellular service providers, for example, have millions of subscribers, and tracking all of these subscribers will be problematic using conventional architectures.
The present invention provides methods and apparatus that scale to allow high-rate proximity detection and notification for very large numbers of subscribers.
Certain embodiments of the present invention impose no additional requirements beyond E911 with respect to handsets The latter requirement is important to carriers because certain embodiments make use of technology which is currently being deployed In addition to the above capabilities, embodiments of the present invention can address two functional capabilities related to supporting a wide range of applications: a system should support a variety of notification forms, including SMS messages, WAP Push services, and application-specific forms; and notification publishers (e.g., retailers) should have the ability to personalize the notification
Referring now toFIG. 1, amethod100 is shown for proximity detection and for notification of proximate mobile devices.Method100 is exemplary and themethod100 provides an overview of the present invention, but additional detail is presented below. Aspects of the present invention take advantage of the natural geographic distribution inherent in wireless networks, and push position queries into the wireless network, close to the positioning technology. This contrasts with the approach of having one central position server that is provided by the wireless carrier to serve less demanding applications.
Method100 begins instep110 when mobile devices within a coverage region are determined. It is possible to determine which devices are within a coverage region of a wireless station. For instance, in cellular networks, a base station subsystem can determine which cellular phones are within the coverage region for the base station subsystem Similarly, an access point can determine which mobile devices are in the coverage region for the access point. A coverage region is an area in which a mobile device and a wireless station can communicate.
Instep120, the positions of the mobile devices within a coverage region are determined. Generally, there is a particular proximity detection technology that services a particular coverage region or perhaps a few coverage regions. By determining the positions of mobile devices within a coverage region with proximity detection technology, the tracking of mobile devices is moved closer to the devices This reduces the bottlenecks that can occur by having a single server attempting to ascertain positions of mobile devices. Such position detection technology could employ, for example, triangulation or global positioning system (GPS) techniques. Any technology suitable for determining a position of a mobile device may be used.
Instep130, it is determined whether any mobile devices are within notification areas. A notification area is an area defined by a publisher. A notification area can be any arbitrary shape. Notification areas are described in more detail below. Publishers are those entities, such as commercial vendors, who define the notification areas and who also define messages to be sent to those mobile devices in the notification areas. Positions of mobile devices are used to determine whether any mobile devices are within a notification areas.
Instep140, messages are sent to selected mobile devices that are in notification areas. Mobile devices can be selected based on a number of criteria. For example, all mobile devices in a notification area can be selected, regardless of any preferences by publishers or subscribers. As described in more detail below, though, generally some preferences will be used to select mobile devices. As an example, publishers can set different categories, among other criteria. Subscribers who are using mobile devices can opt out or opt into these categories. In the present disclosure, a “subscriber” and a “mobile device” will both be treated as having positions, although it is possible for one subscriber to have multiple mobile devices In the latter instance, a mobile device being tracked will still have a subscriber and there will generally be subscriber preferences associated with the mobile device. A publisher may desire to send an advertisement to mobile devices in a particular notification area, but a subscriber using a mobile device may opt out of commercial advertisement and, consequently, will not receive the advertisement. Another subscriber, using a different mobile device, might opt into or have no preference regarding commercial advertisements. Thus, this other subscriber will receive the advertisement.
Therefore,method100 allows notifications to be sent to mobile devices proximate a wireless station. Moreover,method100 allows high-rate proximity detection, as proximity detection and determination of whether mobiles are in notification areas is spread out instead of being centralized.
Referring now toFIG. 2, a high-rateproximity detection subsystem200 is shown interacting with amobile device260. High-rateproximity detection subsystem200 performs, in this example, steps110,120, and130 ofmethod100 ofFIG. 1. High-rateproximity detection subsystem200 comprises local proximity detection systems230-1 through230-N (collectively, local proximity detection systems230), a mobile switching center/visitor position register (MSC/VLR)210, aquery distributor220, and asubscriber database225. Each localproximity detection system230 comprises abase station subsystem235, aproximity detection technology240, aproximity detection module245, anotification areas database250, and asubscriber positions database255. Thesubscriber database225 comprises twosubscriber subsets226 and227 that comprise asubscriber set228. It should be noted that terminology has been borrowed from the GSM wireless architecture, but it should be understood that the present invention applies to all wireless networks where a position of a wireless device can be determined
The number of localproximity detection systems230 perquery distributor220 and MSC/VLR210 is usually small, such as several localproximity detection systems230 perquery distributor220 and MSC/VLR210.
Eachbase station subsystem235, as is known in the art, generally includes a base station controller (not shown) and one or mole base transceiver stations (not shown) The area in which a base transceiver station and a mobile device are able to receive signals from each other defines a “cell” in cellular phone terminology. In this example, thebase station subsystem235 is a wireless station and the cell is a coverage region for the wireless station. In the example ofFIG. 2,mobile device260 can communicate with base station subsystem235-N but cannot communicate with base station subsystem235-1.Mobile device260 is therefore within the coverage legion of local proximity detection system230-N but not within the coverage region of local proximity detection system230-1
Proximity detection technology240 is whatever technology is used for proximity detection. This could be timing, triangulation, GPS information, or any other technology for determining position of amobile device260. It should also be noted that a simpleproximity detection technology240 such as determining whether amobile device260 is within a cell may be suitable for some applications. The present invention will beneficially operate regardless of the type ofproximity detection technology240 used.
Eachproximity detection module245 communicates with theposition detection technology240 and thequery distributor220 If there are multipleproximity detection modules245 deployed for a position area served by the MSC/VLR210, then aquery distributor220 will serve multipleproximity detection modules245. In this context, a position area of MSC/VLR210 comprises the set of coverage areas defined by thebase station subsystems235.
Thequery distributor220 has, in certain embodiments, the responsibility of periodically directing aproximity detection module245 to obtain the positions of a set of currently served subscribers. Thequery distributor220 may obtain this set from the MSC/VLR210 or it may obtain the set from thebase station subsystem235. Thequery distributor220 may also maintain asubscriber database225, if desired, that contains theset228 of currently served subscribers. In the case of multipleproximity detection modules245 serving a position area of the MSC/VLR210, subscriber identifiers obtained from the MSC/VLR210 will be accompanied by thebase station subsystem235 serving each subscriber. Thequery distributor220 maintains an association ofbase station subsystem235 toproximity detection module245, allowing thequery distributor220 to split the set of subscriber identifiers intosubsets226,227, eachsubset226,227 containing only those subscribers served by thebase station subsystem235 to which theproximity detection module245 is associated via theproximity detection technology240.
For the example ofFIG. 2, aset228 of currently served subscribers is divided into twosubsets226,227 of currently served subscribers Thequery distributor220 has, in this example, stored thesesubsets226,227 insubscriber database225, althoughsubscriber database225 is not required. For local proximity detection system230-N, thesubset226 could be the subscriber identifier “subID260” for “SUB ID” portion of thesubset226 for the mobile device160.Subset226 also comprises another identifier (such as “PDM245-N”), shown as “PDM” inFIG. 2, to correlate the subscriber identifier of “subID260” with the local proximity detection system230-N Thesubset227 of currently served subscribers for the local proximity detection system230-1 is a null set, as thee are no currently served subscribers within the coverage legion of the local proximity detection system230-1. Thus,subset227 would be a null subscriber identifier and another identifier (such as “PDM245-1”) to correlate the null subscriber identifier with the local proximity detection system230-1.
Aquery distributor220 may, alternatively, maintain a database (not shown) that associates abase station subsystem235 with the localproximity detection system230 serving thebase station subsystem235 When a subscriber identifier obtained from the MSC/VLR is accompanied by the servingbase station subsystem235, this database facilitates the distribution of positioning queries to the localproximity detection systems230.
Aproximity detection module245 may be associated with multipleproximity detection technologies240, for flexibility in deployment. Also, aquery distributor220 may obtain itsset228 of currently-served subscribers directly from thebase station subsystem235. Furthermore, thequery distributor220 may obtain theset228 of subscribers in various ways. For example,query distributor220 may obtain theset228 of subscribers by periodic direct request, or it may receive them via update events from thebase station subsystem235 orquery distributor220 The precise nature of the interface depends on the network interfaces exposed by a particular carrier implementing thebase station subsystem235 and MSC/VLR210.
Each, in certain embodiments,proximity detection module245 maintains anotification areas database250, which contains the mobile devices that lie within the coverage region served by theproximity detection module245 Each record in the database comprises the geometry (e.g., in geographical coordinates) of a notification area and a unique identification of that notification area. This is described in more detail below. Additional information may include a start time indicating when a notification area becomes active, and a stop time indicating when the notification area becomes inactive Theproximity detection module245 may use this information to locally manage the lifetime of notification areas.
Given aset228 of subscribers, aproximity detection module245 will periodically direct a correspondingproximity detection technology240 to compute positions of subscribers in acorresponding subset226,227 and therefore positions of mobile devices corresponding to the subscribers The direction may occur through a normal interface (not shown) from theproximity detection technology240 for position requests, or theproximity detection technology240 may offer a separate interface (not shown) for tracking requests. For each subscriber position, stored insubscriber positions database255, received from theproximity detection technology240, theproximity detection module245 will query a correspondingnotification areas database250 to determine which, if any, notification areas the subscriber lies within. For each notification area the subscriber lies within, theproximity detection module245 sends a “proximity” message to another module, which is discussed below
Theproximity detection module245 is, in one embodiment, responsible for determining that theproximity detection module245 has already detected the entrance of a particular subscriber to a particular notification area and, therefore, not sending duplicate “proximity” messages Theproximity detection module245, in certain embodiments, is also responsible for detecting when a subscriber has exited an area.
Since theproximity detection technology240 will generally continue to handle conventional position requests forwarded by the MSC/VLR210, theproximity detection module245 may, as an additional function to make handling of the conventional position requests more efficient, maintain asubscriber positions database255 storing the last subscriber position computed. Theproximity detection technology240 will then simply forward position requests to theproximity detection module245. Or, theproximity detection module245 may present aproximity detection technology240 interface (not shown) to the MSC/VLR210.
Turning now toFIG. 3, anotification system300 is shownNotification system300 interacts with acarrier gateway380, which interacts with amobile device260. Thenotification system300 comprises the high-rateproximity detection subsystem200 as described inFIG. 2 andcentral notification subsystem310. Thecentral notification subsystem310 comprises anotification publisher interface315, aspecification module320,PDS information database330, acampaign specifications database340, asubscriber preferences database350, anotification module360, and amessage personalization module370 In this example,central notification system310 performsstep140 ofFIG. 1, which is sending messages to selected mobile devices that are in a notification area
Publisher of notification areas create campaign specifications and enter these campaign specifications via thenotification publisher interface315.Notification publisher interface315 may be implemented, for instance, as a Web page or an applet. The campaign specifications ate received by thespecification module320, which stores them in acampaign specifications database340Campaign specifications database340 is described in more detail in reference toFIGS. 5A and 5B Each campaign specification, as described in more detail below, comprises in this example the following: (a) a publisher identification (ID); (b) a campaign ID; (c) one or more notification areas for the campaign; (d) a message of some form to be delivered to a subscriber; (e) an indication of the type of the method (e.g., SMS ox WAP Push) used to transmit the message; (f) a start time indicating when the campaign is to begin; (g) a stop time indicating when the campaign should end; (h) information indicating the category of campaign, such as whether its purpose is commercial and promotional, commercial and informational (e.g, tourism), entertainment, traffic, or emergency or any combination thereof, and (i) specification of a message-customization mechanism, to be described below. It should be noted that these are only examples and a campaign specification may contain different, more, or less information than what has been and will be described
For each campaign specification received, thespecification module320 determines the affected high-rateproximity detection subsystems200 by comparing the notification areas in the specification (e g, stored in campaign specifications database340) to the coverage regions of the high-rateproximity detection subsystems200, recorded inPDS information database330. An examplePDS information database330 is shown inFIG. 4. For each high-rateproximity detection subsystem200 whose coverage region intersects the notification areas in the specification, thespecification module320 sends thenotification area database250 updates for that high-rateproximity detection subsystem200 These updates comprises for example, sending notification area updates321 to the high-rateproximity detection subsystem200. The notification area updates321 generally comprise notification areas and their associated notification area IDs, start times, and end times, as described in more detail in reference toFIG. 5.
Proximity events361 sent from the high-rateproximity detection subsystem200 to thenotification module360, in certain embodiments, comprise a subscriber ID (not shown) and notification area ID (not shown). Any events suitable to alert a system that a mobile device is within (or perhaps has left) a proximity of wireless station are suitable. Thenotification module360 looks up an associated campaign specification in thecampaign specifications database340 using the notification area ID and composes a notification according to the information in the returned campaign specification.Notification module360 then, optionally, applies subscriber preferences stored insubscriber preferences database350 to determine if the subscriber wishes to receive this notification. For each subscriber known to the system, thesubscriber preferences database350 records, as shown in more detail inFIG. 6, the following: (a) what categories of notifications the subscriber is interested in (e.g., using the same set of categories used by publishers); (b) what publishers the subscriber does not want to receive notifications from; (c) what exceptions, if any, to (b) the subscribes has registered, and (d) what specific campaigns the subscriber has registered for. The preceding were only examples, and asubscriber preferences database350 may have different, more, or less information than that described.
Thus, aproximity event361 such as “<subID, areaID>” could be known by thenotification module360 Thenotification module360 may also determine the campaign ID (e.g., “campID”), the publisher ID (e g., “pubID”), and the category associated with the areaID. Thenotification module360 also optionally determines, for a subscriber; the accepted categories (e.g “acceptedCategories”), blocked publishers (e.g, “blockedPublishers”), the accepted publishers (e.g., “acceptedPublishers”), and accepted campaigns (e.g., “acceptedCampaigns”) Thenotification module360 then proceeds with notification, for example, depending on the following: (campaign category IN acceptedCategories) AND (campaign.publisherID NOT IN blockedPublishers) OR (campaign.publisherID IN acceptedpublishers) OR (campaign.campaignID IN acceptedCampaigns). It should be noted that this formulation is only exemplary and other formulations may be used.
If the publisher has registered a message-personalization directive, thenotification module360 will perform the directive. The directive may consist of a uniform resource locator (URL) for an external host (not shown) that will provide a message personalized for the particular subscriber, or the publisher may have supplied a Java class, in this example themessage personalization module370, that will generate a personalized message. The personalization message may be delivered back tonotification module360 in older for thenotification module360 to transmit the message to thecarrier gateway380. Thenotification module360 will then communicate with thecarrier gateway380 in order to deliver the notification. Alternatively, the personalization message may be delivered directly to thecarrier gateway380. The method of communication with thecarrier gateway380 generally depends on the message type.
Notification processors360 may be replicated for load balancing, using well-known techniques employed in highly loaded web sites.
It should be noted thatFIGS. 2 and 3 are exemplary. Entities in these figures may be combined, subdivided, rearranged, or deleted. For instance, thespecification module320 may be combined with thenotification module360. As another example, thespecification module320 may be further subdivided into a module operating oncampaign specifications database340 andsubscriber preferences database350 when determining whether to notify amobile device260, and another module operating onPDS information database330 andcampaign specifications database340 in order to determine whether notification area updates321 should be sent. As another example, theservice adapter220 could be built into eachproximity detection module245.
Referring now toFIG. 4, an example of aPDS information database330 is shown In this example, there are two high-rateproximity detection subsystems200, which are “PDS 1” and “PDS 2.” The coverage region for each high-rateproximity detection subsystem200 is described via a series of coordinates. Any technique for describing an area may be used The network address of each high-rateproximity detection subsystem200 is also given. The network addresses may also be stored as hyper text transfer protocol (HTTP) addresses or other suitable addresses, if desired As described above, thePDS information database330 is used to determine to which high-rateproximity detection subsystems200 notification area updates321 should be sent.
Referring now toFIGS. 5A and 5B, these figures show an exemplarycampaign specifications database340 As can be seen inFIGS. 5A and 5B, the publisher Mall A has a new store campaign. The mall has an area between a number ofcoordinates 1 through P The message is “Mall A is proud to announce the grand opening of Store K, offering 15% off.” In this example, the Store K is offering 15 percent off but Mall A has not offered a coupon directly to subscribers. This message is to be delivered via a WAP push, and it is valid between December 10 at 11 a.m. to December 24 at 9 pm. The category is commercial and the message customization is “message with map,” which means that a message will contain a map showing the location of the new store, if themobile device260 supports this.
It should be noted thatFIGS. 5A and 5B are merely exemplary. Other criteria may be added, and criteria shown incampaign specifications database340 can be removed For instance, a cellular phone system may choose to make categories optional. Additionally, there may be multiple entries pet publisher For example, the publisher DOT already has two separate entries shown. In situations where more than one message method and method customization might be performed for a single message, this can be indicated via two entries or a single entry. For instance, Mall A might want to send its message via both SMS and WAP. In this case, the “WAP” message method could be changed to “SMS, WAP” and the “MESSAGE WITH MAP” message customization could be changed to “NONE, MESSAGE WITH MAP” so that SMS uses no message customization but WAP uses “MESSAGE WITH MAP”
Referring now toFIG. 6, an exemplarysubscriber preferences database350 is shown. In this example,subscriber preferences database350 has two subscribers, subscribers A and B Subscriber A has accepted all categories, blocked no publishers and accepted all publishers, and has accepted the “COUPONS” campaign from Publisher A Publisher A publishes a number of different coupons using the “COUPONS” campaign, and Subscriber A has accepted this campaign On the other hand, Subscriber B has specifically opted out of commercial categories and specifically dislikes Publisher A. However, Subscriber B has opted to receive information from publisher DOT and Mall A Thus, even though Subscriber B will not, in general, receive commercial messages, Subscriber B will, under the exemplary formulation given above, receive commercial messages from Mall A.
Turning now toFIG. 7, acomputer system700 is shown interacting with anetwork770 and a medium760.Computer system700 may be used to implement the method steps and apparatus described herein. For instance,computer system700 may implement the frictions ofspecification module320 and thenotification module360.Computer system700 comprises aprocessor710, amemory720, anetwork interface730, and amedia interface740.
Processor710 can be configured to implement the method steps and functions disclosed herein. Thememory720 could be distributed or local and theprocessor710 could be distributed or singular. Thememory720 could be implemented as an electrical, magnetic or optical memory, or any combination of these or other types of storage devices Moreover, the term “memory” should be construed broadly enough to encompass any information able to be read from or written to an address in the addressable space accessed byprocessor710. With this definition, information onnetwork770 is still withinmemory720 because theprocessor710 can retrieve the information from the network It should be noted that each distributed processor that makes upprocessor710 generally contains its own addressable memory space. It should also be noted that some or all ofcomputer system700 can be incorporated into an application-specific or general-use integrated circuit.
As is known in the art, the methods and apparatus discussed herein may be distributed as an article of manufacture that itself comprises a machine readable medium, such asmedium760, containing one or more programs which when executed implement embodiments of the present invention For instance, the machine readable medium may contain a program configured to determine whether the position of amobile device260 is within a notification area. The machine readable medium may be a recordable medium (e g., a hard drive or an optical disk) or may be a transmission medium (e.g., anetwork770 comprising fiber-optics, the Internet, or a wireless network using time-division multiple access, code-division multiple access, or other radio-frequency channel) Any medium that can store information suitable for use with a computer system may be used
It is to be understood that the embodiments and variations shown and described herein are merely illustrative of the principles of this invention and that various modifications may be implemented by those skilled in the art without departing from the scope and spirit of the invention.