RELATED APPLICATIONThis application is a continuation of and claims priority to U.S. patent application Ser. No. 10/400,044 filed on Mar. 25, 2003, the disclosure of which is incorporated by reference herein.
TECHNICAL FIELDThe present disclosure generally relates to CD players, and more particularly, to a database of CD music attributes that can be updated and transferred between CD-capable devices.
BACKGROUNDPersonal computers (PCs) typically include a software media player that permits a user to play back various forms of multimedia file formats such as, for example, DVD (Digital Versatile Disc), CDDA (Compact Disc-Digital Audio), MPEG (Motion Pictures (Coding) Experts Group) video, MP3 (MPEG-1/2 Audio Layer III), WMA (Windows® Media Audio 8), WAV (Windows® Wave), WMV (Windows® Media Video) and the like. Examples of such software media players include RealNetwork's Real One player, Apple Computer's QuickTime and Microsoft's Windows Media Player.
In addition to playing back different media formats on a PC, media players often perform other functions including, for example, copying CD tracks onto the PC hard disc in various file formats (e.g., WAV, WMA, MP3) and organizing the files into a desired playback order, copying music to a portable device, burning an audio or data CD, and retrieving and displaying various media information or attributes about the music that a user plays on the PC. Music attributes can include information such as, for example, CD titles, album art, composers, artists, biographies, discographies, musical genre, album recording date, reviews, related news, related artists, track titles, and the like.
Music attribute information for many CDs is available online through various Internet database services. Thus, media players executing on PC's or other computers that have Internet access can readily obtain music attributes for a wide range of CD music. For example, when a media player plays a CD or rips a CD track and encodes it as a WMA or MP3 file, the media player might also access an Internet database service and download music attributes for the entire CD or the ripped CD track. Music attributes for ripped CD tracks can be encoded into WMA and MP3 files as metadata tags. Therefore, the music attributes travel with the encoded files and are available for display on a PC and various other remote devices to which the files can be transferred.
Media players on PCs can also store the music attributes retrieved from an Internet database service in a media library/database on the PC. In general, music attributes stored on an Internet database or in a media library/database on a PC are identifiable or associated with a particular CD through a CD identifier called a table of contents (TOC). The TOC is not stored on the CD, but is instead a calculation of start and stop times for the music tracks on the CD. The start and stop times for music tracks on a CD are measured to within 1/77thof a second when a CD is inserted into a CD player. Thus, virtually all CDs are uniquely identifiable by their TOC. The TOC identifier can be used to associate music attributes for a CD in various environments, such as an Internet database or a PC media library/database. Thus, a media player on a PC can maintain a media library that includes music attributes for various CDs associated by CD TOCs. When a CD is played on the PC, the media player can display music attributes from the media library that are associated through the CD TOC. If the CD TOC is not available in the media library, the media player can access an Internet database service and make a request to have the music attributes downloaded based on the CD TOC.
Various remote and/or portable CD-capable devices (e.g., car stereos, hand-held portable CD players) can play conventional CD, CD-R (CD recordable), and CD-RW (CD rewritable) discs, as well as MP3 and WMA-encoded music files stored on CD-R/RWs or other storage media such as SD cards, compact flash cards, and PCMCIA flash cards. Such remote CD-capable devices are also generally able to display music attributes stored as metadata tags in MP3 and WMA-encoded music files. Therefore music attributes are available for display on remote CD devices if CD tracks have been ripped to MP3 or WMA files. However, music attributes are not available for display on remote CD devices if CD tracks are played directly from a CD. This is because music attributes are not stored on the CDs themselves and because remote CD-capable devices do not maintain updated media libraries containing CD TOCs and associated music attributes.
Accordingly, a need exists for a way to provide music attributes for CD tracks when CDs are played on remote CD-capable devices.
SUMMARYA database can be updated on a PC and transferred to remote CD (compact disc) players so that music attributes for CDs are displayable on remote players while CDs are played.
In one embodiment, a PC receives a portable memory card and determines if a new CD identification is present on the card. The PC downloads music attributes from a network server for new CD identifications found on the card. The PC stores the attributes in a CD database and synchronizes the database to the portable memory card.
In another embodiment, a remote CD player receives a CD and checks a portable memory card for a CD identification. If the CD identification is found on the card, the player accesses music attributes on the card associated with the CD and displays the attributes while playing the CD. If the CD identification is not found on the card, the player stores the identification on the card as a new CD identification.
BRIEF DESCRIPTION OF THE DRAWINGSThe same reference numerals are used throughout the drawings to reference like components and features.
FIG. 1 illustrates an exemplary environment for implementing one or more embodiments of a dynamic mobile CD music attributes database.
FIG. 2 is a block diagram of an exemplary hardware/software architecture of a personal computer and remote CD player as might be implemented in the environment ofFIG. 1.
FIG. 3 is a flow diagram illustrating an exemplary method of implementing one or more embodiments of a dynamic mobile CD music attributes database.
FIG. 4 illustrates an exemplary computing environment that is suitable for implementing a general-purpose computer.
DETAILED DESCRIPTIONOverview
The following discussion is directed to a dynamic mobile database of CD (compact disc) music attributes and the automatic updating of such a database as it travels between a PC (personal computer) and various remote CD players on a portable storage medium. When playing a CD, a remote player searches for a CD identifier in the mobile database and displays associated music attributes from the database if the CD identifier is present. CD identifiers not found in the database are added to the database on the portable storage medium by the remote player. When the portable storage medium is transferred to a PC, the PC accesses an online music information service and downloads music attributes for the new CD identifier that has been added to the database. The PC then updates the database with the new music attributes.
The PC can also update the database anytime it encounters a new CD. Thus, music attributes for any CDs that are played by the PC, burned by the PC, or ripped by the PC are also added to the mobile database. Advantages of the mobile CD music attributes database include the ability to display useful media information for CD music played on remote CD players.
Exemplary Environment
FIG. 1 shows anexemplary environment100 suitable for implementing one or more embodiments of a dynamic mobile CD music attributes database. The exemplary environment can includeremote CD players102 of various types, acomputer104,portable storage media106 for theremote CD players102 andcomputer104, and one ormore content sources108.Computer104 is operatively coupled to content source(s)108 through anetwork110. Network110 can include both local and remote connections depending on the particular system configuration. Thus,network110 may include, for example, any one or a combination of a modem, a cable modem, a LAN (local area network), a WAN (wide area network), an intranet, the Internet, or any other suitable communication link.
Portable storage media106 can be any of a number of portable nonvolatile memory devices useful for conveying information betweencomputer104 and aremote CD player102 including, for example, an SD (secure digital) card, a CF (compact flash) card, a SmartMedia card, a Memory Stick, a MMC (multimedia card), a PCMCIA (Personal Computer Memory Card International Association) flash card, a portable hard disc drive (e.g., a USB, Firewire, or PCMCIA interface device) and the like. In certain instances,portable storage media106 might also be a burnable CD such as a CD-R (CD-recordable disc) or CD-RW (CD-rewritable disc).
Communication link112 betweencomputer104 andremote CD player102 is a wireless (radio) link such as Bluetooth, GPRS (General Packet Radio Services), Wi-Fi or any of the IEEE (Institute of Electrical and Electronics Engineers) 802.11 family of standard specifications (e.g., 802.11, 802.11a, 802.11b, and 802.11g) for wireless local area networks (WLANs). In general,wireless link112 may be used in conjunction with or instead ofportable storage media106 to convey information betweencomputer104 and aremote CD player102.
Remote CD player102 can be implemented as any of a variety of portable or mobile CD-capable devices including handheld devices, automobile devices, and so on. Examples of such devices include Sony's D-CJ500 CD/MP3 Player, SONICblue's RioVolt SP50C CD/MP3 Player, Alpine's CDA-9815 CD/MP3/WMA car stereo receiver, and Sony's CDX-MP70 CD/MP3 car stereo receiver. Such devices typically have the capability of playing both standard audio CDs as well as CD-Rs and CD-RWs. In addition, many conventional CD-capable devices have the capability of playing music in compressed formats including, for example, MP3 (MPEG-1/2 Audio Layer III) and WMA (Windows® Media Audio 8) file formats. Furthermore, devices that are MP3 compatible are typically able to display ID3 tags from MP3 files while playing the MP3 files. ID3 tags are MP3 file markers that include information about a song, such as the title, the artists, the album name, and so on. Therefore, while playing MP3 formatted music, a CD-capable device might also be able to display certain attributes about the music. However, conventional remote or portable CD-capable devices are not able to display such additional information when playing standard audio CDs, because such information is not presently conveyed on standard audio CDs. Accordingly, a discussion of the exemplary embodiments in the following section includes a description of a dynamic mobile CD music attributes database that enables aremote CD player102 to display such additional music attribute information while playing standard audio CDs.
Content source108 is typically implemented as one or more server computers such as a Web server. Thus,content source108 may include a variety of general purpose computing devices such as a workstation computer, and may be configured in a manner similar to an exemplary implementation ofcomputer104 as described below with reference toFIG. 4.Content source108 generally provides storage for electronic documents and information including various multi-media content that is accessible to client computers such ascomputer104 overnetwork110. More specifically,content source108 offers an online database service that provides music information to acomputer104 for a wide variety of CD music. The information available on acontent source108 can include CD music attributes such as CD titles, album art, composers, artists, biographies, discographies, musical genre, recording dates, reviews, related news, related artists, track titles, and the like. Examples ofcontent sources108 include Gracenote.com and WindowsMedia.com.
Computer104 generally retrieves CD music attributes from acontent source108 for playback oncomputer104 or on aremote CD player102 after the content is transferred viaportable storage media106 orwireless link112.Computer104 is a CD-capable device and includes a media player for CDs and other media and a corresponding database of CD music attributes. The media player oncomputer104 typically updates the CD attributes database with new CD information retrieved from acontent source108 whenevercomputer104 plays a new CD, burns a custom CD, rips tracks from a new CD, or otherwise encounters a new CD.Computer104 is otherwise typically capable of performing common computing functions, such as email, calendaring, task organization, word processing, Web browsing, and so on. In this embodiment,computer104 runs an open platform operating system, such as the Windows® brand operating systems from Microsoft®.Computer104 may be implemented, for example, as a desktop computer, a server computer, a laptop computer, or other form of personal computer (PC). One exemplary implementation ofcomputer104 is described in more detail below with reference toFIG. 4.
EXEMPLARY EMBODIMENTSFIG. 2 is a block diagram representation of an exemplary embodiment of aremote CD player102 andcomputer104 as might be implemented in theenvironment100 ofFIG. 1.Computer104 is implemented as a PC (personal computer) such as a desktop or laptop PC.Remote CD player102 is implemented as aportable CD player102.
PC104 includes aprocessor200, a volatile memory202 (i.e., RAM), and a nonvolatile memory204 (e.g., ROM, hard disk, floppy disk, CD-ROM, etc.).Nonvolatile memory204 generally provides storage of computer/processor-readable instructions, data structures, program modules and other data forPC104. One exemplary implementation of aPC104 is described in more detail below with reference toFIG. 4.PC104 typically implementsvarious application programs206 stored inmemory204 and executed onprocessor200.Such applications206 might include software programs implementing, for example, word processors, spread sheets, browsers, multimedia players, illustrators, computer-aided design tools and the like. In theFIG. 2 embodiment,media player208 is separately illustrated as one such application.
Media player208 is a software component generally tailored for playing back different forms of multimedia file formats. Examples of amedia player208 might include software media players such as RealNetwork's Real One player, Apple Computer's QuickTime and Microsoft's Windows Media Player.Media player208 can typically play back multimedia file formats such as DVD (Digital Versatile Disc), CDDA (Compact Disc-Digital Audio), MPEG (Motion Pictures (Coding) Experts Group) video, MP3 (MPEG-1/2 Audio Layer III), WMA (Windows® Media Audio 8), WAV (Windows® Wave), WMV (Windows® Media Video), and the like.
Media player208 also serves as a ripper, an encoder, and a CD burner. As a ripper,media player208 takes digital audio information from a CD and creates a WAV file.Media player208 then encodes or compresses the WAV file as an MP3 or WMA file. Music in various file formats can be transferred betweenPC104 and portable player devices (e.g., remote CD player102) through aportable storage medium106, such as aCD210 ormemory card212, or awireless connection112 as discussed below. Thus,PC104 includes CD drive214 for receiving CDs andmedia slot216 for receiving memory devices such as amemory card212. In addition to copying music and other media information ontoportable media106 such as amemory card212 throughmedia slot216,media player208 also generally provides for burning audio and data CDs throughCD drive214.
Media player208 maintains a media library218(A) that includes a list of all the songs it plays in a CD music attributes database220(A). This list also includes songs that themedia player208 rips and encodes and songs that it burns onto an audio CD throughCD drive214. In addition to maintaining an updated list of songs,media player208 maintains the CD music attributes database220(A) with media information associated with each song in its list. The CD media information in the database220(A) can include music attributes for each CD in the list such as, for example, the CD title, album art, composers, artists, biographies, discographies, musical genre, album recording date, reviews, related news, related artists, track titles, and the like. Thus, whenever aCD210 is played onPC104,media player208 identifies the CD210 (i.e., through CD drive214) and tries to find the CD identification in the CD music attributes database220(A). If the CD is found in the database220(A), themedia player208 retrieves music attributes associated with the CD and displays them. However, when anew CD210 is encountered whose identification is not found in the database220(A),media player208 accesses acontent source108 and requests information for the new CD identification.Content source108 downloads music attributes for the new CD toPC104 andmedia player208 stores the music attributes in the database220(A).
In general, aCD210 is identifiable by start and stop times for the CD music tracks located on the CD. When a CD is inserted into theCD drive214, thedrive214 scans the CD with a laser and calculates the start and stop times for the tracks to determine the CD's identity. The CD identifier is often called the CD's table of contents (TOC). Because start and stop times for music tracks on a CD are measured to within 1/77thof a second, virtually all CDs can be uniquely identified by their calculated TOC. Thus, it is a CD's TOC that themedia player208 uses to identify the CD both in the CD music attributes database220(A) and on acontent source108.
The CD attributessynchronizer222 is generally configured to synchronize the CD music attributes database220(A) onto portable storage media106 (e.g., amemory card212, a CD210), which enables transfer of the database220(A) toportable CD player102.Synchronizer222 accesses amemory card212 inserted intomedia slot216, for example, to compare CD identifications on thememory card212 with CD identifications in the CD music attributes database220(A).Synchronizer222 determines if a new CD identifier (i.e., a CD identifier not present in database220(A)) has been stored on thememory card212. If new CD identifiers are found to be on thememory card212,synchronizer222 callsmedia player208 to update the database220(A) with the new CD identifiers and associated music attributes for the new CDs. As discussed above,media player208 accesses acontent source108 and requests information for the new CD identifiers. Whencontent source108 downloads music attributes for the newly identified CDs to thePC104,media player208 stores the music attributes in the database220(A). CD attributessynchronizer222 then synchronizes the CD music attributes database220(A) onto the portable memory card212 (i.e., portable storage medium106) inmedia slot216.Synchronizer222 might also burn the database220(A) onto a CD-R or CD-RW in CD drive214.
In another embodiment,synchronizer222 is configured to synchronize the CD music attributes database220(A) directly withportable CD player102 through awireless connection112. When awireless link112 is established betweenPC104 andportable CD player102,synchronizer222 can establish whether CD identifications in the CD attributes database220(A) are present in a corresponding CD attributes database220(B) onportable CD player102.Synchronizer222 also determines throughwireless link112 if new CD identifiers (i.e., CD identifiers not present in database220(A)) have been stored on the CD attributes database220(B) onportable CD player102. If new CD identifiers are found on the CD attributes database220(B),synchronizer222 calls onmedia player208 to update the database220(A) with the new CD identifiers and associated music attributes for the new CDs. As discussed above,media player208 accesses acontent source108 and requests information for the new CD identifiers. Whencontent source108 downloads music attributes for the newly identified CDs to thePC104,media player208 stores the music attributes in the database220(A). CD attributessynchronizer222 then synchronizes the CD music attributes database220(A) with the CD attributes database220(B) onportable CD player102 throughwireless connection112.
Remote CD player102 is implemented as aportable CD player102 in theFIG. 2 embodiment.Portable CD player102 includes aprocessor224, a volatile memory226 (i.e., RAM), and a nonvolatile memory228 (e.g., ROM, hard disk, floppy disk, CD-ROM, etc.).Nonvolatile memory228 generally provides storage of computer/processor-readable instructions, data structures, program modules and other data forplayer102.Player102 typically implementsvarious application programs230 stored inmemory228 and executed onprocessor224. One such application illustrated separately in theFIG. 2 embodiment, is amedia player232.Media player232 is typically a scaled down version of a media player similar to themedia player208 described above onPC104. For example, whilemedia player232 is typically configured to play back multimedia file formats such as standard audio CDs, MP3 files and WMA files, it may not include a capability to access an online server such ascontent source108 as described above.
Depending on the size ofmemory228 onportable CD player102,media player232 may or may not maintain a media library218(B) and corresponding CD attributes database220(B) stored inmemory228. Thus, a significant source of audio music data formedia player232 may be portable storage media106 (i.e.,CDs210, portable memory cards212) accessed viaCD drive234 andmedia slot236. Media library218(B) and CD attributes database220(B) are the same as library218(A) and database220(A), respectively, except that they may be in a different states of being updated and they are either located in a memory onportable CD player102, or they are located on a portable storage media106 (i.e.,CDs210, portable memory cards212) inserted intoportable CD player102.
CD attributesaccess module238 is generally configured to access CD music attributes whenportable CD player102 plays aCD210.Media player232 can then display CD music attributes associated with the CD being played. Access module retrieves CD music attributes from a CD attributes database220(B) located on portable storage media106 (i.e.,CDs210, portable memory cards212) in CD drive234 ormedia slot236. In another embodiment,access module238 may first transfer CD attributes database220(B) fromportable storage media106 tomemory228 and then retrieve CD music attributes from database220(B) inmemory228.Access module238 is further configured to update database220(B) if aCD210 is played bymedia player232 whose CD identification is not present in the database220(B).
Thus, when aCD210 is played onportable CD player102,CD player102 calculates a CD TOC (i.e., CD identifier) usingCD drive234 in a manner similar to that discussed above forPC104.Access module238 searches database220(B) for the CD identification and retrieves CD music attributes for themedia player232 to display on a display screen (not shown) if the CD identification is found in the database220(B). However, if the CD identification is not found in the database220(B),access module238 stores the CD identification on theportable storage media106 as a new CD identification. In this way, thedatabase220 will be updated with additional CD music attributes for any new CDs byPC104 when new CD identifications are transferred to thePC104 viaportable storage media106. It is noted thataccess module238 might also transfer new CD identifications to aPC104 viawireless link112.
Exemplary Methods
Example methods for implementing one or more embodiments of a dynamic mobile CD music attributesdatabase220 will now be described with primary reference to the flow diagram ofFIG. 3. The methods apply generally to the exemplary embodiments discussed above with respect toFIG. 2. The elements of the described methods may be performed by any appropriate means including, for example, by hardware logic blocks on an ASIC or by the execution of processor-readable instructions defined on a processor-readable medium.
A “processor-readable medium,” as used herein, can be any means that can contain, store, communicate, propagate, or transport instructions for use by or execution by a processor. A processor-readable medium can be, without limitation, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, device, or propagation medium. More specific examples of a processor-readable medium include, among others, an electrical connection (electronic) having one or more wires, a portable computer diskette (magnetic), a random access memory (RAM) (magnetic), a read-only memory (ROM) (magnetic), an erasable programmable-read-only memory (EPROM or Flash memory), an optical fiber (optical), a rewritable compact disc (CD-RW) (optical), and a portable compact disc read-only memory (CDROM) (optical).
FIG. 3 shows anexemplary method300 for implementing an embodiment of a dynamic mobile CD music attributesdatabase220. Atblock300, aPC104, receivesportable storage media106.Portable storage media106 can include aCD210 and/or amemory card212 such as an SD card, a CF card, a SmartMedia card, a Memory Stick, a MMC card, a PCMCIA flash card, and the like. Atblock304, the PC determines if there is a new CD identification on thestorage media106. CD identifications are typically, but not necessarily, located in a CD music attributesdatabase220 stored onportable storage media106. The PC compares CD identifications on thestorage media106 with CD identifications in a CD attributes database220(A) on the PC. Any CD identifications present on thestorage media106 that are not present in the database220(A) on the PC are considered to be new CD identifications representing new CDs. As noted above, a comparison and identification of CD identifications between CD attributes database220(A) on thePC104 and a corresponding CD attributes database220(B) on aportable CD player102 can also be achieved through awireless connection112.
Continuing atblock306, if a new CD identification is found on thestorage media106, the PC checks an online service to try and locate the CD identification. The online service is generally an online music database service that can provide music information toPC104 for a wide variety of CD music. The information available on the online service can include CD music attributes such as CD titles, album art, composers, artists, biographies, discographies, musical genre, recording dates, reviews, related news, related artists, track titles, and the like. Examples of such services include Gracenote.com and WindowsMedia.com. Atblock308, CD music attributes associated with the new CD identification are downloaded to the PC from the online music service. The PC stores the CD music attributes in a CD music attributesdatabase220.
Atblock310, whether or not new CD identifications were found on the portable storage media, the CD music attributes database220(A) is synchronized onto the portable storage media. Therefore, if the CD music attributes database220(A) on the PC has been updated with additional CD music attributes, then any prior version of the CD music attributesdatabase220 on the portable storage media is overwritten with an updated version of the CD music attributes database220(A). Again, as discussed above, the synchronization between the CD attributes database220(A) on thePC104 and a corresponding CD attributes database220(B) on aportable CD player102 can also be achieved through awireless connection112.
Themethod300 continues on aremote CD player102 atblock312. Atblock312,remote CD player102 receivesportable storage media106. Receivingportable storage media106 typically includes receiving aCD210 and/or receiving amemory card212.Portable storage media106 generally includes a CD music attributesdatabase220 that can either be loaded onto a memory onboard theremote player102 for future access, or it can remain on theportable storage media106 for access byremote player102.Remote CD player102 determines a CD identification atblock314. The CD identification belongs to aCD210 that has been inserted into a CD drive onremote player102. As discussed above, determining a CD identification involves calculating a TOC (table of contents) of start and stop times for tracks on a CD.
Atblock316, theremote player102 determines if the CD identification is present in the CD music attributes database220(B). Atblock318, if the CD identification is not present in the CD music attributes database220(B), theremote player102 stores the CD identification on theportable storage media106 as a new CD identification. Atblock320, theremote player102 has determined that the CD identification is present on theportable storage media106 and therefore retrieves CD music attributes associated with the CD identification. Atblock322, remote player displays the CD music attributes. Themethod300 continues in a cyclical manner atblock302, where the PC again receivesportable storage media106 that may have new CD identifications stored on it. In this manner, a CD music attributesdatabase220 is dynamically updated as it travels between a PC and a remote CD player, making music attributes available for display on remote CD players.
While one or more methods have been disclosed by means of flow diagrams and text associated with the blocks of the flow diagrams, it is to be understood that the blocks do not necessarily have to be performed in the order in which they were presented, and that an alternative order may result in similar advantages. Furthermore, the methods are not exclusive and can be performed alone or in combination with one another.
Exemplary Computer
FIG. 4 illustrates an example of asuitable computing environment400 that may be used to implement the general-purpose computer104. Although one specific configuration is shown,computer104 may be implemented in other computing configurations.
Thecomputing environment400 includes a general-purpose computing system in the form of acomputer402. The components ofcomputer402 can include, but are not limited to, one or more processors orprocessing units404, asystem memory406, and asystem bus408 that couples various system components including theprocessor404 to thesystem memory406.
Thesystem bus408 represents one or more of any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of bus architectures. By way of example, such architectures can include an Industry Standard Architecture (ISA) bus, a Micro Channel Architecture (MCA) bus, an Enhanced ISA (EISA) bus, a Video Electronics Standards Association (VESA) local bus, and a Peripheral Component Interconnects (PCI) bus also known as a Mezzanine bus.
Computer402 typically includes a variety of computer readable media. Such media can be any available media that is accessible bycomputer402 and includes both volatile and non-volatile media, removable and non-removable media. Thesystem memory406 includes computer readable media in the form of volatile memory, such as random access memory (RAM)410, and/or non-volatile memory, such as read only memory (ROM)412. A basic input/output system (BIOS)414, containing the basic routines that help to transfer information between elements withincomputer402, such as during start-up, is stored inROM412. RAM410 typically contains data and/or program modules that are immediately accessible to and/or presently operated on by theprocessing unit404.
Computer402 can also include other removable/non-removable, volatile/non-volatile computer storage media. By way of example,FIG. 4 illustrates ahard disk drive416 for reading from and writing to a non-removable, non-volatile magnetic media (not shown), amagnetic disk drive418 for reading from and writing to a removable, non-volatile magnetic disk420 (e.g., a “floppy disk”), and anoptical disk drive422 for reading from and/or writing to a removable, non-volatileoptical disk424 such as a CD-ROM, DVD-ROM, or other optical media. Thehard disk drive416,magnetic disk drive418, andoptical disk drive422 are each connected to thesystem bus408 by one or more data media interfaces426. Alternatively, thehard disk drive416,magnetic disk drive418, andoptical disk drive422 can be connected to thesystem bus408 by a SCSI interface (not shown).
The disk drives and their associated computer-readable media provide non-volatile storage of computer readable instructions, data structures, program modules, and other data forcomputer402. Although the example illustrates ahard disk416, a removablemagnetic disk420, and a removableoptical disk424, it is to be appreciated that other types of computer readable media which can store data that is accessible by a computer, such as magnetic cassettes or other magnetic storage devices, flash memory cards, CD-ROM, digital versatile disks (DVD) or other optical storage, random access memories (RAM), read only memories (ROM), electrically erasable programmable read-only memory (EEPROM), and the like, can also be utilized to implement the exemplary computing system and environment.
Any number of program modules can be stored on thehard disk416,magnetic disk420,optical disk424,ROM412, and/or RAM410, including by way of example, anoperating system426, one ormore application programs428,other program modules430, andprogram data432. Each ofsuch operating system426, one ormore application programs428,other program modules430, and program data432 (or some combination thereof) may include an embodiment of a caching scheme for user network access information.
Computer402 can include a variety of computer/processor readable media identified as communication media. Communication media typically embodies computer readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared, and other wireless media. Combinations of any of the above are also included within the scope of computer readable media.
A user can enter commands and information intocomputer system402 via input devices such as akeyboard434 and a pointing device436 (e.g., a “mouse”). Other input devices438 (not shown specifically) may include a microphone, joystick, game pad, satellite dish, serial port, scanner, and/or the like. These and other input devices are connected to theprocessing unit404 via input/output interfaces440 that are coupled to thesystem bus408, but may be connected by other interface and bus structures, such as a parallel port, game port, or a universal serial bus (USB).
Amonitor442 or other type of display device can also be connected to thesystem bus408 via an interface, such as avideo adapter444. In addition to themonitor442, other output peripheral devices can include components such as speakers (not shown) and aprinter446 which can be connected tocomputer402 via the input/output interfaces440.
Computer402 can operate in a networked environment using logical connections to one or more remote computers, such as aremote computing device448. By way of example, theremote computing device448 can be a personal computer, portable computer, a server, a router, a network computer, a peer device or other common network node, and the like. Theremote computing device448 is illustrated as a portable computer that can include many or all of the elements and features described herein relative tocomputer system402.
Logical connections betweencomputer402 and theremote computer448 are depicted as a local area network (LAN)450 and a general wide area network (WAN)452. Such networking environments are commonplace in offices, enterprise-wide computer networks, intranets, and the Internet. When implemented in a LAN networking environment, thecomputer402 is connected to alocal network450 via a network interface oradapter454. When implemented in a WAN networking environment, thecomputer402 typically includes amodem456 or other means for establishing communications over thewide network452. Themodem456, which can be internal or external tocomputer402, can be connected to thesystem bus408 via the input/output interfaces440 or other appropriate mechanisms. It is to be appreciated that the illustrated network connections are exemplary and that other means of establishing communication link(s) between thecomputers402 and448 can be employed.
In a networked environment, such as that illustrated withcomputing environment400, program modules depicted relative to thecomputer402, or portions thereof, may be stored in a remote memory storage device. By way of example,remote application programs458 reside on a memory device ofremote computer448. For purposes of illustration, application programs and other executable program components, such as the operating system, are illustrated herein as discrete blocks, although it is recognized that such programs and components reside at various times in different storage components of thecomputer system402, and are executed by the data processor(s) of the computer.
CONCLUSIONAlthough the invention has been described in language specific to structural features and/or methodological acts, it is to be understood that the invention defined in the appended claims is not necessarily limited to the specific features or acts described. Rather, the specific features and acts are disclosed as exemplary forms of implementing the claimed invention.