throbber
(12) United States Patent
`J awa et al.
`
`(10) Patent N0.:
`(45) Date of Patent:
`
`US 6,728,729 B1
`Apr. 27, 2004
`
`US006728729B1
`
`(54) ACCESSING MEDIA ACROSS NETWORKS
`
`(75) Inventors: Amandeep J aWa, San Francisco, CA
`(US); J e?'rey L. Robbin, Los Altos, CA
`(US); David Heller, San Jose, CA (US)
`(73) Assignee: Apple Computer, Inc., Cupertino, CA
`(Us)
`
`( * ) Notice:
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 0 days.
`
`(21)
`(22)
`(51)
`(52)
`(58)
`
`(56)
`
`Appl. No.: 10/423,638
`Filed:
`Apr. 25, 2003
`
`Int. Cl.7 .............................................. .. G06F 17/30
`US. Cl. .......................... .. 707/104; 707/3; 707/203
`Field of Search .............................. .. 707/104, 3, 4,
`707/5, 203
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`5,920,856 A
`5,983,218 A
`6,243,713 B1
`6,523,022 B1
`
`*
`
`*
`
`*
`
`*
`
`7/1999 Syeda-Mahmood .......... .. 707/3
`11/1999 Syeda-Mahmood .......... .. 707/3
`6/2001 Nelson et al. ......... .. 707/104.1
`2/2003 Hobbs ......................... .. 707/3
`
`OTHER PUBLICATIONS
`
`“Apple Introduces iTunes—World’s Best and Easiest To
`Use Jukebox Software,” Macworld Expo, San Francisco,
`Jan. 9, 2001, downloaded from http://www.apple.com/pr/
`library/2001/jan/09itunes.html, on Jul. 10, 2002, 2 pages.
`iTunes, Playlist Related Help Screens, iTunes v1.0, Apple
`Computer, Inc., Jan. 2001.
`“Apple Announces iTunes 2,” Press Release, Apple Com
`puter, Inc., Oct. 23, 2001, downloaded from: http://ww
`w.apple.com/pr/library/2001/oct/23itunes.html, on Jul. 10,
`2002, 2 pages.
`Speci?cation Sheet, iTunes 2, Apple Computer, Inc., Oct.
`31, 2001.
`
`iTunes 2, Playlist Related Help Screens, iTunes v2.0, Apple
`Computer, Inc., Oct. 23, 2001.
`SoundJam MP Plus, Representative Screens, published by
`Casady & Greene, Inc., Salinas, CA, 2000.
`“SoundJam MP Plus Manual, version 2.0”—MP3 Player
`and Encoder for Macintosh by Jeffrey Robbin, bill Kincaid
`and Dave Heller, manual by Tom Negrino, published by
`Casady & Greene, Inc., 2000.
`“WWDC 2002 Keynote Coverage,” MacCentral Staff, May
`6, 2002, downloaded from: http://naccentral.macworld.com/
`news/2002/05/06/wwdckeynote on Nov. 12, 2003, 8 pages.
`“WWDC Keynote Coverage,” MacCentral Staff, May 6,
`2002, downloaded from: http://maccentral.macworld.com/
`news/2002/05/06/wwdckeynote on Nov. 12, 2003, 8 pages.
`“Review: SoundJam MP Plus 2.5.1,” Daniel Chvatik, Oct.
`2000, downloaded from: http://www.atpm.com/6.10/sound
`jam.shtml on Nov. 12, 2003, 8 pages.
`“iHam on iRye: 2.0—VersionTracker,” downloaded from:
`http://www.versiontracker.com/dyn/moreinfo/macosx/
`13021 on Nov. 12, 2003, 3 pages.
`“iCommune—Share your music over a network,” down
`loaded from http://www.icommune.sourceforge.net/ on Nov.
`12, 2003, 1 page.
`
`* cited by examiner
`
`Primary Examiner—Sanjiv Shah
`(74) Attorney, Agent, or Firm—Beyer Weaver & Thomas
`LLP
`
`(57)
`
`ABSTRACT
`
`Method and apparatus for accessing media across networks.
`The present invention generally allows for media to be
`provided across a network. A client requests media infor
`mation from a server so the client can create a local
`representation of the server’s database. The client is then
`able to manage the media information locally. When the
`client selects the desired media, it requests the selection
`from across the network. The server then delivers the
`selected media.
`
`15 Claims, 11 Drawing Sheets
`
`SERVER-SIDE MEDIA MANAGEMENT SYSTEM
`
`j 200
`
`MEDIA MANAGER
`
`5210
`
`205
`
`MUSIC
`DATABASE
`
`215
`
`SONGS L5 220
`
`PLAYLISTS L
`
`Yamaha Corporation of America Exhibit 1018 Page 1
`
`

`

`U.S. Patent
`
`Apr. 27, 2004
`
`Sheet 1 0f 11
`
`US 6,728,729 B1
`
`125
`
`120
`
`C)
`
`FIGURE 1
`
`Yamaha Corporation of America Exhibit 1018 Page 2
`
`

`

`U.S. Patent
`
`Apr. 27, 2004
`
`Sheet 2 0f 11
`
`US 6,728,729 B1
`
`SERVER-SIDE MEDIA MANAGEMENT SYSTEM
`
`MEDIA MANAGER
`
`215
`
`§ 200
`
`M US I C
`DATABAS E
`
`SONGS
`
`‘
`
`220
`
`PLAYLISTS
`
`FIGURE 2
`
`CLIENT-SIDE MEDIA MANAGEMENT SYSTEM
`
`lg 305
`
`MEDIA
`MANAGER
`
`I 300
`
`7
`
`FIGURE 3
`
`Yamaha Corporation of America Exhibit 1018 Page 3
`
`

`

`U.S. Patent
`
`Apr. 27, 2004
`
`Sheet 3 0f 11
`
`US 6,728,729 B1
`
`SERVER
`406$
`
`409
`
`Client Connects to Network g
`
`CLIENT
`f 403
`
`SERVER-INFO Request
`
`412
`
`SERVER-INFO Reply
`
`>
`
`418
`‘f
`
`CONTENT CODE Request (Optional)
`
`421
`
`CONTENT CODE Reply
`
`P
`430 J 427
`
`Client Logs On (If Necessary) %
`
`>
`
`J
`
`415
`
`5
`
`424
`
`<
`
`FIGURE 4A
`
`Yamaha Corporation of America Exhibit 1018 Page 4
`
`

`

`U.S. Patent
`
`Apr. 27, 2004
`
`Sheet 4 0f 11
`
`US 6,728,729 B1
`
`SERVER
`
`II
`
`436 I‘
`439 JI’
`
`CLIENT
`
`SERVE R-DATABASE Request
`
`433
`
`SERVER-DATABASE Reply
`
`FIGURE 48
`
`442
`
`rfsee FIG. 5
`
`SERVER
`
`406 f
`
`DATABASE-SONGS Request
`
`CLIENT
`
`403
`
`445
`
`DATABAS E-SONGS Reply
`
`453
`t/S\ee FIG. 6
`
`FIGURE 4C
`
`Yamaha Corporation of America Exhibit 1018 Page 5
`
`

`

`U.S. Patent
`
`Apr. 27, 2004
`
`Sheet 5 0f 11
`
`US 6,728,729 B1
`
`SERVER
`
`406 f
`
`457 j
`
`DATABASE-PLAYLIST Request
`
`DATABASE-PLAYLIST Reply
`
`FIGURE 4D
`
`SERVER
`
`CLIENT
`
`PLAYLlST-SONGS Request
`
`463
`
`PLAYLIST-SONGS Reply
`
`466 j
`
`FIGURE 4E
`
`469
`
`U
`
`ee FIG. 7
`
`Yamaha Corporation of America Exhibit 1018 Page 6
`
`

`

`U.S. Patent
`
`Apr. 27, 2004
`
`Sheet 6 0f 11
`
`US 6,728,729 B1
`
`CLIENT
`f 403
`472
`
`SERVER
`
`406\/\
`
`475 J
`
`SONG-DATA Request
`
`Stream SONG
`
`FIGURE 4F
`
`Yamaha Corporation of America Exhibit 1018 Page 7
`
`

`

`U.S. Patent
`
`Apr. 27, 2004
`
`Sheet 7 0f 11
`
`US 6,728,729 B1
`
`CLIENT-SIDE DATABASE MANAGEMENT SYSTEM
`
`MEDIA MANAGER
`
`f 305
`
`I 300
`
`515
`
`FIGURE 5
`
`Yamaha Corporation of America Exhibit 1018 Page 8
`
`

`

`U.S. Patent
`
`Apr. 27, 2004
`
`Sheet 8 0f 11
`
`US 6,728,729 B1
`
`CLIENT-SIDE DATABASE MANAGEMENT SYSTEM
`
`MEDIA MANAGER
`
`f 305
`
`605
`
`5 300
`
`510
`
`TTT_“H
`PLAYLISTS l|
`
`FIGURE 6
`
`Yamaha Corporation of America Exhibit 1018 Page 9
`
`

`

`U.S. Patent
`
`Apr. 27, 2004
`
`Sheet 9 0f 11
`
`US 6,728,729 B1
`
`5/ 300
`
`CLIENT-SIDE DATABASE MANAGEMENT SYSTEM
`
`MEDIA MANAGER
`
`f 305
`
`605
`
`SONGS
`
`[
`
`_ __ _ J
`
`510
`
`(J05
`PLAYLISTS Ti
`LI__—_—__—_'IJ
`
`FIGURE 7
`
`Yamaha Corporation of America Exhibit 1018 Page 10
`
`

`

`U.S. Patent
`
`Apr. 27, 2004
`
`Sheet 10 0f 11
`
`US 6,728,729 B1
`
`SERVER
`
`810
`f UPDATE Request
`
`4
`
`CLIENT
`
`805
`f 815
`
`820 f‘
`825 5
`
`UPDATE Reply
`
`FIGURE 8
`
`Yamaha Corporation of America Exhibit 1018 Page 11
`
`

`

`U.S. Patent
`
`Apr. 27, 2004
`
`Sheet 11 0f 11
`
`US 6,728,729 B1
`
`I 905
`
`Processor(s)
`
`$0
`
`I 910
`
`Interface(s)
`
`f 920
`
`f 915
`
`Memory
`
`BUS
`
`FIGURE 9
`
`Yamaha Corporation of America Exhibit 1018 Page 12
`
`

`

`US 6,728,729 B1
`
`1
`ACCESSING MEDIA ACROSS NETWORKS
`
`BACKGROUND OF THE INVENTION
`
`1. Field of the Invention
`The present invention relates to digital media and, more
`particularly, to accessing digital media across netWorks.
`2. Description of the Related Art
`The ability of computers to be able to share information
`is of utmost importance in the information age. NetWorks are
`the mechanism by Which computers are able to communi
`cate With one another. Generally, devices that provide
`resources are called servers and devices that utiliZe those
`resources are called clients. Depending upon the type of
`network, a device might be dedicated to one type of task or
`might act as both a client and a server, depending upon
`Whether it is giving or requesting resources.
`Increasingly, the types of resources that people Want to
`share are entertainment-related. Speci?cally, music, movies,
`pictures, and print are all types of entertainment-related
`media that someone might Want to access from across a
`netWork. For eXample, although a music library may reside
`on a family computer in the den, the media oWner may Want
`to listen to the music in the living room.
`HoWever, sharing media data can be a network-intensive
`process. People have devoted signi?cant resources to both
`reducing the load on netWorks and increasing the capability
`of netWorks to handle large data transfers. Due to advances
`in compression technology and netWork bandWidth, the
`throughput of information through netWorks has increased
`dramatically over the years.
`Although the described technologies Work Well in many
`applications, there are continuing efforts to further improve
`the ability to transfer digital media.
`
`SUMMARY OF THE INVENTION
`The present invention provides a method of retrieving
`media across a netWork. First, a client connects to a netWork
`that includes a server. The server includes at least one media
`database that has media and associated media information.
`The client then queries the server for at least a portion of the
`media information and then receives media information
`responsive to the query. The client then uses a client-side
`media management system to manage the received media
`information. Management of the received media information
`includes selecting media. The client then requests the
`selected media from across the netWork and, in response to
`the request, receives the requested media.
`In another aspect, a client queries the server for server
`information and capabilities after connecting to the netWork.
`The client then receives a response that identi?es the server
`and informs the client as to its capabilities. After receiving
`the server information, the client queries the server for
`database enumeration and receives a response that enumer
`ates all databases, hoW much media is available, and hoW
`many media collections are available. After the database
`identi?cation, the client queries the server for an enumera
`tion of media collections in the database and receives a
`response that identi?es media collections. The client then
`queries the server for data associated With an identi?ed
`media collection, the query being capable of requesting a
`different level of detail than Would be given by default. The
`response to the media collection query identi?es data asso
`ciated With the identi?ed media collection in the requested
`level of detail. The client then eXecutes the identi?ed media
`
`10
`
`15
`
`25
`
`35
`
`45
`
`55
`
`65
`
`2
`collection, requesting media from the server When the media
`collection requires the media and receiving the requested
`media.
`In yet another aspect, the invention provides a method of
`ensuring that a media database representation on a client is
`current. The server ?rst provides a media database that
`updates to a current revision indicator Whenever the media
`database is modi?ed. Then, the server receives a request
`from the client, the request pertaining to the database that
`includes a client-provided revision indicator. After receiving
`the request, the server compares the current revision indi
`cator to the client-provided revision indicator. The server
`then responds to the request With a response that includes at
`least an identi?cation of the current revision indicator if the
`client-provided revision indicator did not match the current
`revision indicator.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`The invention may best be understood by reference to the
`folloWing description taken in conjunction With the accom
`panying draWings in Which:
`FIG. 1 is a block diagram illustrating an eXemplary
`environment in Which the present invention may be imple
`mented;
`FIG. 2 is a block diagram illustrating an organiZational
`structure of a server-side media management system on the
`server illustrated in FIG. 1;
`FIG. 3 is a block diagram illustrating an organiZational
`structure of a client-side media management system on the
`client illustrated in FIG. 1;
`FIG. 4A is a representational control How diagram illus
`trating one technique that can be used to determine the
`features of the server-side media management system illus
`trated in FIG. 2;
`FIG. 4B is a representational control How diagram illus
`trating one technique that could be used to enumerate
`databases of the server-side media management system
`illustrated in FIG. 2;
`FIG. 4C is a representational control How diagram illus
`trating one technique that could be used to populate a song
`records portion of the client-side media management system
`illustrated in FIG. 5;
`FIG. 4D is a representational control How diagram illus
`trating a technique that could be used to enumerate playlists
`of the server-side media management system illustrated in
`FIG. 2;
`FIG. 4E is a representational control How diagram illus
`trating a technique that could be used to populate a playlist
`records portion of the client-side media management system
`illustrated in FIG. 6;
`FIG. 4F is a representational control How diagram illus
`trating a technique that could be used to retrieve a song from
`a song database once a song is selected from the client-side
`media management system illustrated in FIG. 7;
`FIG. 5 is a block diagram illustrating an organiZational
`structure of the client-side media management system after
`receiving a reply to the SERVER-DATABASE request illus
`trated in FIG. 4B;
`FIG. 6 is a block diagram illustrating an organiZational
`structure of the client-side media management system after
`receiving a reply to the DATABASE-SONGS request illus
`trated in FIG. 4C;
`FIG. 7 is a block diagram illustrating an organiZational
`structure of the client-side media management system after
`
`Yamaha Corporation of America Exhibit 1018 Page 13
`
`

`

`US 6,728,729 B1
`
`3
`receiving a reply to the PLAYLIST-SONGS request illus
`trated in FIG. 4E;
`FIG. 8 is a representational control How diagram illus
`trating one technique that could be used to ensure the client
`and the server illustrated in FIG. 1 are synchronized; and
`FIG. 9 is a diagram illustrating an exemplary computing
`device in Which various embodiments of the invention may
`be implemented.
`It is to be understood that, in the draWings, like reference
`numerals designate like structural elements. Also, it is
`understood that the depictions in the ?gures are not neces
`sarily to scale.
`
`DETAILED DESCRIPTION OF THE
`PREFERRED EMBODIMENTS
`In the folloWing description, numerous speci?c details are
`set forth to provide a thorough understanding of the present
`invention. HoWever, it Will be obvious to one skilled in the
`art that the present invention may be practiced Without some
`or all of these speci?c details. In other instances, Well knoWn
`process steps have not been described in detail in order to
`avoid unnecessarily obscuring the present invention.
`The present invention generally alloWs for client
`machines to access a media database on a server. Both data
`and metadata on the server describes and organiZes the
`media in various Ways and alloWs the server to manipulate
`the media. Instead of relying on the server to execute the
`media management system, the client requests the data and
`metadata and then uses the information on a local media
`management system, effectively creating a representation of
`the server on the client. Once media is selected on the client
`through the client-side media management system, the client
`can request the media from the server, and the server can
`deliver the media to the client.
`The invention can support both “thick” and “thin” clients.
`Thick clients are typically softWare programs, such as
`iTunesTM softWare available from Apple Computer, Inc. of
`Cupertino, Calif., operating on hardWare devices that sup
`port full user interface abilities and have considerable pro
`cessor and memory resources. Thin clients are softWare
`programs operating on hardWare devices that may have
`limited user interface abilities and have reduced processing
`and memory resources. The invention alloWs for robust
`control features appropriate for thick clients, but can adapt
`to minimal control features for thin clients.
`Generally, a client Will ?rst make a request to determine
`Whether media is available on a server. Then, the client can
`make a series of requests to create a representation of the
`media available on the server on the client. The represen
`tation contains information about the media available on the
`server (“media information”). Thick clients can choose to
`retrieve a complete representation of the server’s available
`media, While thin clients may choose to retrieve a partial
`representation of the server’s available media. After receiv
`ing the media information from the server, the client (as
`instructed by its user) can then search, broWse, sort, or
`otherWise interact With the media information noW resident
`on the client. Further, the client (as instructed by its user)
`Will typically select a media item to be presented (e.g.,
`played). In such a case, the media content for the selected
`media item is streamed from the server to the client.
`In addition, clients can receive noti?cations from the
`server When a media database has been changed. Multiple
`connections can alloW a client to use one connection to
`access media While using another connection to Wait for a
`noti?cation that the database has changed, or to broWse
`media listings.
`
`10
`
`15
`
`25
`
`35
`
`45
`
`55
`
`65
`
`4
`FIG. 1 is a block diagram illustrating an exemplary
`environment in Which the present invention may be imple
`mented. A netWork 105 couples a server 110 to various
`clients 115, 120, 125, and 130. The netWork 105 can
`generally be a data netWork, such as a LAN, WAN or the
`Internet. The server 110 may or may not be a dedicated
`device. In the example shoWn in FIG. 1, the server 110 is a
`general purpose computer. The various clients 115, 120, 125,
`and 130 can be thick or thin clients, With varying levels of
`processing poWer. Clients may include portable computers
`115, desktop computers 120, specialiZed devices such as
`iPodsTM 125 available from Apple Computer, Inc. of
`Cupertino, Calif., or even netWork-aWare audio/video com
`ponents 130 that are designed to Work across a netWork 105.
`The folloWing discussion Will, for simplicity, assume only
`the portable computer client 115 is requesting information
`from the server 110.
`FIG. 2 is a block diagram illustrating an organiZational
`structure of a server-side media management system 200 on
`the server 110. The server-side media management system
`200 includes a media manager 210 and a music database
`205. The media manager 210 controls access to the music
`database 205. More particularly, the media manager 210
`receives requests from the client 115, accesses the music
`database, and returns responses to the client 115.
`The music database 205 has a number of records 215 and
`220 that are used to classify, identify and/or describe media
`(i.e., media items) in the music database 205. For simplicity,
`the folloWing discussion Will assume the digital media
`contained on the server 110 only contains music ?les that
`can be streamed over the netWork 105. It should be appre
`ciated that any reference to “songs” or “music” made in this
`document could be generaliZed to any form of digital media,
`Which can include sound ?les, picture data, movies, text ?les
`or any other types of media that can be digitally stored on a
`computer. Similarly, any reference to “playlists” can be
`generaliZed to media collections, including collections of
`mixed digital media.
`The media manager 210 has or can obtain information
`about the database 205 that may, for example, include the
`name of the server, the version of the database being used,
`the type of security that is required, the number of databases
`available to the server, Whether content codes are supported,
`Whether persistent identi?cation is supported, etc. It should
`be appreciated by those skilled in the art that the information
`about the database 205 may exist in a single record ?le or
`can be either partially or fully generated on demand, iden
`tifying the various pieces of information as needed.
`The song records 215 contain metadata about each media
`item available in the database 205. The metadata might
`include, for example, the names of songs, an identi?cation
`number, a persistent identi?cation number, the artist, the
`album, the siZe of the song, the format of the song, the
`required bit rate, and any other appropriate information. Of
`course, the type of information may depend on the type of
`media. A video ?le might additionally have director and
`producer ?elds, but may not use the album ?eld. Still
`pictures Would have no need for bit rate information. While
`some ?elds may be standard, others may be speci?c to
`certain applications. For example, a video signal may have
`secondary audio program (SAP) information. A mechanism
`for ensuring clients can properly process non-standard con
`tent codes is described in connection With FIG. 4A.
`Both an identi?cation number and a persistent identi?ca
`tion number can be used. If supported, a persistent identi
`?cation could be used to access the same information across
`
`Yamaha Corporation of America Exhibit 1018 Page 14
`
`

`

`US 6,728,729 B1
`
`5
`server restarts. Typically, a server Would assign each record
`a neW identi?cation number every time the media manage
`ment system 200 restarted. However, persistent identi?ca
`tion numbers Would remain the same for as long as the
`record is available.
`The playlist records 220 contain information about each
`playlist available in the music database 205. Further, the
`information for a given playlist can include the identi?cation
`numbers for each of the songs Within the playlist. Playlists
`are collections of media that may or may not be in any
`particular order. Users may choose to combine media by
`genre, mood, artists, audience, or any other meaningful
`arrangement. While the playlists 220 on the server 110 Will
`usually only include media contained in its oWn music
`database 205, there is no reason the playlist records 220
`cannot include media or playlists stored on other servers.
`HoWever, certain non-standard content codes may need to be
`used, depending upon the implementation of the server-side
`media management system 200.
`FIG. 3 is a block diagram illustrating an organiZational
`structure of a client-side media management system 300 on
`one of the clients 115. The client-side media management
`system 300 includes a media manager 305. The media
`manager 305 interacts With the media manager 210 of the
`server-side media management system 200 through the
`netWork 105 so as to replicate at least a portion of the music
`database 205 at the server 110 on the client 115. When the
`client-side media management system 300 ?rst starts, it
`cannot access media on the server 110 because it does not as
`yet have any information about What media is available.
`FIG. 4A is a representational control How diagram illus
`trating one technique that can be used to determine the
`features of the server-side media management system 200.
`Operations performed by the client 115 and the server 110
`are represented by corresponding vertical lines 403 and 406.
`At 409 the client 115 connects to the netWork 105 and ?rst
`becomes aWare of the server 110. The client 115 can use any
`connection mechanism that alloWs it to interact With the
`netWork 105. For example, if the client 115 Were an
`iBookTM, available from Apple Computer, Inc. of Cupertino,
`it might use RendezvousTM netWorking technology, also
`available from Apple Computer, Inc. of Cupertino, Calif., in
`order to automatically con?gure itself With the netWork 105.
`If the client is not aWare of the server 110, other mechanisms
`can be used. For example, a user might manually search for
`the server 110, or the user might directly enter the address
`of the server 110.
`Once the client 115 is aWare of the server 110, it can send
`a SERVER-INFO request to the server 110 at 412. The
`SERVER-INFO request is usually used to obtain informa
`tion from the server prior to attempting any other transac
`tions. If the netWork 105 uses the TCP/IP protocol, the
`request could be formatted as an HTTP GET request. The
`GET request might also alloW for additional extensions to be
`added to the request, enabling, for example, the client 115 to
`include information about the client-side media manage
`ment system 300.
`At 415 the server responds to the SERVER-INFO request
`With information describing a series of features supported by
`or required by the server. The information might, for
`example, include information about the server-side media
`management system 200, the number of available databases,
`Whether and What login procedures are required, Whether
`updates are supported, Whether persistent identi?cation
`numbers are supported, Whether content codes are
`supported, and the protocol version.
`
`10
`
`25
`
`35
`
`45
`
`55
`
`65
`
`6
`The information provided to the client 115 at 415 permits
`the client-side media management system 300 to understand
`the capabilities of the server 110. Although the client 115 is
`able to identify the server 110, the client 115 does not yet
`have any information about the available media.
`If the client 115 determines that the server 110 responded
`to the SERVER-INFO request With an indication that con
`tent codes are supported at 418, the client 115 can optionally
`issue a CONTENT CODE request at 421. The CONTENT
`CODE request is one mechanism by Which the client 115 can
`obtain a list of content codes supported by the server 110 and
`associated string names mapped thereto.
`The inclusion of the string name alloWs multiple devel
`opers to use the same codes for their individualiZed prod
`ucts. For example, one developer may assign the code
`“16000” to a feature that alloWs users to purchase corre
`sponding albums over the netWork; While another developer
`may assign the same code to feature that provides users With
`the lyrics of songs that are being listened to. By alloWing a
`string name to be included, the client 115 can determine
`Whether it can support the content code. Uniqueness of the
`string name can, for example, be ensured by including the
`developer’s URL as part of the string name.
`At 424 the server 110 responds to the CONTENT CODE
`request the codes and their associated string names. At 427,
`the client 115 can simply ignore the code/string pairs that it
`does not recogniZe. OtherWise, for those code/string pairs
`that the client 115 does recogniZe, the client 115 Will
`associate the code With the associated string name.
`At 430 the client 115 logs into the server 110. The login
`procedure might require a user name (or account name) and
`passWord so the user of the client can be authenticated. The
`login procedure is only required if the server 110 requires it.
`Certain security protocols might require that every future
`request made by the client 115 include certain parameters
`such as a session identi?cation number.
`Once logged in, the client 115 is ready to begin populating
`its local representation of the music database 205. FIG. 4B
`is a representational control How diagram illustrating one
`technique that can be used to enumerate databases of the
`server-side media management system 200. Operations per
`formed by the client 115 and the server 110 are represented
`by corresponding vertical lines 403 and 406. At 433 the
`client 115 can issue a SERVER-DATABASE request, Which
`can be used to retrieve the list of all music databases from
`the server 110. The SERVER-DATABASE request may
`additionally include an index range and/or a query. Although
`available to both thick and thin clients, thin clients might use
`index ranges and/or queries to limit the amount of data
`contained in each server response.
`The index range might be used in any request to constrain
`the items returned in the response to a subset of the total set
`of items, based on the position (or index) of the ?rst item and
`the number of items requested. For example, an index range
`could be used to request: the second music database from a
`server, songs 10 through 20 from a music database, the last
`5 playlists from a music database, the ?rst 5 songs from a
`given playlist, or the 42nd song in a music database.
`The query might be used in any request to constrain the
`items returned in the response to a subset of the total set of
`items, based on the speci?ed criteria. For example, a query
`could request: songs in a database after a given year;
`playlists that contain a certain Word in their name; songs in
`a database that do not contain a given Word in their name;
`or some combination thereof.
`After processing the SERVER-DATABASE request at
`436, the server 110 issues a response at 439. If no index
`
`Yamaha Corporation of America Exhibit 1018 Page 15
`
`

`

`US 6,728,729 B1
`
`7
`range and/or query Was given, the response Would contain a
`complete list of the music databases available at the server
`110 together With information about the one or more music
`databases. The information about each database might, for
`example, include the database identi?cation number, the
`persistent database identi?cation number, the name for each
`database, the numbers of songs, and the number of playlists.
`With this information, the client-side media management
`system 300 becomes aWare of the general structure of the
`one or more music databases at the server 110.
`FIG. 5 is a block diagram illustrating the organiZational
`structure of the client-side media management system 300
`shoWn in FIG. 3 after receiving a reply to the SERVER
`DATABASE request. At 442, the client 115 is able to
`identify the music database 510, the number of available
`song records 515, and the number of available playlists 520.
`Once the general structure of the music database 510 is
`knoWn, the client 115 can populate its representation using
`any number of techniques.
`FIG. 4C is a representational control How diagram illus
`trating one technique that could be used to populate the song
`records 515 portion of the client-side media management
`system 300 for a speci?c database 510. Operations per
`formed by the client 115 and the server 110 are represented
`by corresponding vertical lines 403 and 406. At 445 the
`client issues a DATABASE-SONGS request to obtain meta
`data about available songs.
`Athick client may choose to issue a DATABASE-SONGS
`request so that it can front load netWork traf?c. Once
`metadata about a song is received and stored, the client 115
`does not need to request that metadata again. Playlists Would
`only need to correctly identify a song (e.g., using the song
`identi?cation number), and the client-side media manage
`ment system 300 Would be able to associate it With the
`already-received metadata.
`Thin clients may choose to issue an index range, query,
`metadata ?eld speci?er, or skip 445 all together. Ametadata
`?eld speci?er Would indicate that only certain metadata
`?elds are desired. Thick clients that use 445 may also choose
`to use these same index range, query or metadata ?eld
`speci?er techniques. For example, limiting the song meta
`data request to only songs in a certain genre might be a
`technique that is used to provide the user With a different
`user experience.
`The server 10 performs any necessary ?ltering operations
`at 448 and then issues a reply at 451. FIG. 6 is a block
`diagram illustrating the organiZational structure of the
`client-side media management system 300 at 453, after
`receiving a reply to the DATABASE-SONGS request. The
`song records 605 may either be a partial or complete
`representation of the server-side song records 215, having
`metadata that might, for example, include the names of
`songs, an identi?cation number, a persistent identi?cation
`number, the artist, the album, the siZe of the song, the format
`of the song, the required bit rate, and any other appropriate
`information. If the server-side management system 200 had
`multiple databases, a DATABASE-SONGS request (if used)
`Would need to be issued for each database.
`FIG. 4D is a representational control How diagram illus
`trating a technique that could be used to enumerate the
`playlist records 220 portion of the server-side media man
`agement system 200. Operations performed by the client 115
`and the server 110 are represented by corresponding vertical
`lines 403 and 406.
`At 454 the client issues a DATABASE-PLAYLIST
`request to obtain a list of available playlists. Playlists on the
`
`10
`
`15
`
`25
`
`35
`
`45
`
`55
`
`65
`
`8
`server 110 can either be user-identi?ed or generated auto
`matically by the server-side media management system 200.
`For example, a “base playlist” might be automatically cre
`ated as a special playlist that contains all the songs in the
`entire song database 205 While a “John Lennon playlist”
`might be a user-created collection of songs by John Lennon.
`After receiving the DATABASE-PLAYLIST

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket