# Patent

## Title
Device classification for media delivery

## Abstract

Media content is provided for remote playback over a packet-based network. According to an example embodiment of the present invention, a host server authenticates remote users and further processes media content requests from authenticated remote users by directing or otherwise facilitating the delivery of requested media content from a user's media content source to a remote playback device. The remote playback device is classified and the media content is selectively configured at one or both of the media content source and the host server in accordance with the classification, prior to delivery to the remote playback device. Communications among the host server, remote playback device and media content source are over the packet-based network.

## Background
RELATED PATENT DOCUMENTS
This patent document is a continuation of U.S. patent application Ser. No. 11/700,345, filed on Jan. 31, 2007, which is a continuation-in-part of U.S. patent application Ser. No. 11/056,345 entitled “Network-distributed Media content Routing,” filed Feb. 11, 2005; U.S. patent application Ser. No. 11/056,345 is also a continuation-in-part of U.S. patent application Ser. No. 09/843,249 filed on Apr. 26, 2001 and now U.S. Pat. No. 7,139,834; priority is claimed under 35 U.S.C. § 120 to both of these documents for common subject matter.


FIELD OF THE INVENTION
The present invention relates generally to communications and, more particularly, to server-hosted configuration and routing of media to a remote media playback device in accordance with a classification of the media playback device.
BACKGROUND
Data communications over a variety of networks, such as packet-based networks, mobile telephone networks and others have increased at an astonishing rate over recent years. Generally, the affordability and availability of computers, telephones, wireless devices and other network access appliances has made their use prevalent in a variety of applications. Further, the availability network access, such as Internet access, in more environments and involving a multitude of communication mediums has increased dramatically, such that network access has become widely available and convenient.
As access to packet-based networks such as the Internet becomes easier, convenient and readily available, the demand for the use of these networks for transferring media content such as images, audio, email, video and text has increased. In this regard, the number of network subscribers, media content providers, and requests by those subscribers for media content transfer, streaming media content and other content are growing exponentially. Users are increasingly relying upon such networks for media content transfer, and are further placing higher expectations on their ability to access content at different locations using a multitude of different devices in a flexible, controllable manner. For instance, Internet access is evolving in application to implementation with a multitude of devices, such as mobile telephones, portable media playback devices, home audio and/or video media devices and systems, navigation systems, personal wireless devices and of course, notebook and desktop computers.
Media content (e.g., audio, images or video) has evolved in application, is often stored electronically and is readily transferable over packet-based networks as described above. For example, the storage of music and/or video in rewritable electronic media has become a popular method in which to maintain and access media collections. For video applications, digital recording and storage of television and personal video collections has become popular, as has the streaming (via the Internet) of stored video. Similarly, audio is often stored in electronic media, transferred to portable devices or streamed via the Internet using a packet-based approach to provide the audio to an Internet device such as a computer.
In many applications, remote access to media content by users owning or subscribing to the media content, or by guests with whom a user wishes to share her or his content, is desirably flexible and controllable. Further, such access is desirably implemented with a multitude of different types of media playback devices. For example, owners of digital audio content often desire access to their content with a variety of different devices, such those described in connection with example Internet access devices above. However, previous approaches to media access and sharing have been limited by the relative inability to controllably provide media content, and to provide media content that is accessible with different device types.
Effectively and efficiently making content and other media content readily accessible across a myriad of playback devices has been challenging in the face of the advancement of technologies and trade channels that use or could use network-based media transfer.
SUMMARY
The present invention is directed to approaches to providing host-controlled peer-to-peer access to registered-user data. The present invention is exemplified in a number of implementations and applications, some of which are summarized below.
According to an example embodiment of the present invention, an approach to the routing of data such as media content involves host-controlled authentication of a remote data recipient, classification of a remote device to be implemented by the remote data recipient, and host-controlled delivery of data form a registered-user's data source to the remote device.
According to another example embodiment of the present invention, a system facilitates the delivery of requested media content from a plurality of registered-user media content sources to classified remote playback devices over a packet-based network. The system includes a host server that communicates with remote users and the registered-user media content sources via the packet-based network, and authenticates remote users requesting the delivery of media content to a classified remote playback device. At each of a plurality of registered-user media content sources, an agent processor establishes a communication link with the host server over the packet-based network and is responsive to the host server to facilitate the delivery of media content from the media content source over the packet-based network. For media requests from authenticated remote users, the host server controls the agent processor at a registered-user media content source to facilitate the delivery of requested media content to a remote playback device over the packet-based network. Media content to be delivered from a registered-user media content source to a remote playback device is selectively configured, by at least one of the host server and the registered-user media content source, in accordance with a classification of the remote playback device.
In connection with the above and other embodiments herein, the term “agent processor” refers to a processor that is responsive to another communication device such as a host server. For example, the agent processor carries out functions involving the responsive communication of data and, in various applications, is programmed (e.g., via software or firmware) into a computer, router, mobile telephone, digital media device, modem or other processor-based device.
According to another example embodiment of the present invention, a system delivers media content over a packet-based network to a remote media playback device in accordance with a classification of the remote media playback device. The system includes an authentication server that authenticates users requesting media content delivery to a remote media playback device. A device classification engine associates device classes with a set of device classification rules. A browser gateway interacts with remote media playback devices and classifies each remote media playback device into one of the associated device classes, and an agent gateway interacts with registered-user media content sources. At each registered-user media content source, an agent processor interacts with the agent gateway via the packet-based network, and is responsive to the agent gateway for delivering media content to an authenticated user at a remote media playback device. The agent processor facilitates the media content delivery as a function of both the device classification of the remote media playback device and the device classification rules associated with the device class by the device classification engine.
The above summary of the present invention is not intended to describe each embodiment or every implementation of the present invention. The figures and detailed description that follow more particularly exemplify these embodiments.



BRIEF DESCRIPTION OF THE DRAWINGS
The invention may be more completely understood in consideration of the detailed description of various embodiments of the invention that follows in connection with the accompanying drawings, in which:
FIG. 1 is a system for hosted media configuration and routing over a packet-based network for playback at one of a variety of media playback device types, according to an example embodiment of the present invention; and
FIG. 2 is a data-flow diagram for a system and approach to device classification and host-controlled delivery of media content to a classified device, according to another example embodiment of the present invention.



While the invention is amenable to various modifications and alternative forms, specifics thereof have been shown by way of example in the drawings and will be described in detail. It should be understood, however, that the intention is not to limit the invention to the particular embodiments described. On the contrary, the intention is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the invention.
DETAILED DESCRIPTION
The present invention is believed to be applicable to a variety of different types of communications, and the invention has been found to be particularly suited for routing media content, such as that available at a registered-user's content source, to a classified and authenticated remote media playback device. While the present invention is not necessarily limited to such applications, various aspects of the invention may be appreciated through a discussion of various examples using this context.
In connection with various example embodiments of the present invention, a host server interacts over a packet-based network with a registered user's data source and an authorized user at a remote packet-based device to facilitate the communication of data from the data source to the remote device over the network. In these applications, the remote user may be, for example, a registered user or a guest to which media content access has been granted. The host server uses authentication criteria to authenticate the remote user, and further classifies the remote packet-based device, prior to facilitating the delivery of media content to the remote user.
The classification identifies characteristics of the remote packet-based device relating to its ability to access data such as media content in one or more of a variety of manners. In some applications, the classification is attribute-based, with one or more device classes assigned one or more attributes. Attributes are generally characteristics that are identified in one or more manners, such as with a name and value (e.g., a named-value pair). For example, attributes may drive media transcoding for specifying a format to which media is to be transcoded prior to playback by a device having the particular device classification to which the attribute is assigned. Attributes may specify a specific communications protocol used by the particular device class, such as characteristics relating to device protocol support for different WAP (wireless application protocol) stacks that characterize the manner in which the remote device accesses data. Attributes may further specify characteristics relating to other device functionality such as user interface type (e.g., screen size and/or resolution).
For authenticated remote users, the host server interacts with the media content source to direct the delivery of media content from the content source to the remote media playback device over the packet-based network. The host server further facilitates the selective configuration (i.e., formatting) of the media content in accordance with the device classification (e.g., specifying transcoding parameters), or the selective delivery of data having an appropriate configuration.
One or both of the host server and the data source classify remote devices and store information, where appropriate, characterizing remote device classification. Classification information is obtained for remote devices using one or more of various approaches, either directly from the remote devices or using other information (e.g., device specification information) associated with the remote devices. Once classified, information characterizing the classification for each remote device is stored (e.g., at the data source) and used in selectively configuring or otherwise presenting data to the remote device. In some applications, device class configuration values are stored at the data source, support two or more device classes, and are implemented across various devices that operate under a particular configuration (e.g., several audio playback devices that are known to support mp3 audio format). With this approach, device-specific configuration can be avoided, thus making interaction with a multitude of different devices possible in a manageable environment.
The media content source has software-implemented functionality implemented via an agent processor that responds to controls received from the host server and facilitates communications between the host server and the content source. The media content source is generally either packet-based itself, or is coupled to a packet-based device to facilitate the delivery of media content from the media content source over a packet-based network. In this regard, the media content source, as referred to above and/or in other locations herein, generally refers to a single device and/or a system that is capable of both presenting media content for transfer over a packet-based network and of communicating over the packet-based network. For instance, one such device/system involves an Internet modem and a personal computer that stores and/or has access to media content directly or via a communications link such as a LAN. Other media content sources may include one or more of a media recorder (e.g., a digital video recorder or digital audio recorder), a broadcast receiving device (e.g., a television receiver, radio receiver or satellite receiver), a gaming device, a mobile telephone or other packet-communicating devices. The agent processor communicates with the host to establish a communications link therewith, and facilitates media content transfer at the direction of the host (or at the direction of user commands received from a remote registered user or a registered user at the content source), using class and/or classification data for a remote playback device to which the media content is to be transferred. In some applications, media content transfer is via the host, and in other instances, directly from the media content source to the remote media playback device.
The host server and/or the agent processor controls the format of media content in playlists to facilitate playback at one or more different remote media playback devices, using one or more different playback approaches, with delivery via one or more different types of communications mediums. In some applications, media content is stored in different formats amenable to playback with devices characterized by different device classes (and accordingly, playback media with different configurations). Generally, the host server and agent processor facilitate the establishment, management and delivery of media content in an appropriate format for playback using these approaches. Moreover, for various applications, in addition to device class, data is configured to suit one or more of a medium over which the data is to be delivered to the remote device and protection characteristics (e.g., media rights) associated with the data. In still other applications, the configuration of media data is made in accordance with a particular playlist, which maybe applicable for implementation at two or more different playback devices.
In another example embodiment of the present invention, the host server manages a network-based cache to store raw and/or configured data (e.g., media) for delivery to a remote-user device. The host server implements the agent processor to direct the population of the cache with media content from a registered-user's content source in an appropriate configuration, relative to various remote playback devices and their respective classifications.
The above discussion applies generally to a multitude of different systems, devices, networks and communications approaches. For illustrative purposes, the following discusses one particular example embodiment involving a media communications system and approach, aspects of which may be implemented using, for example, one or more of the approaches shown in and described above and/or in connection with the figures.
A user having a home-based local area network (LAN) registers with a host server for remote media content access, and installs agent software on a personal computer (PC) connected to the home LAN. The user (now a registered user) sets preferences, such as access criteria (user name, password), data such as media to make available for remote access, and local media sources from which to provide media.
Once registered, the user's PC connects to the host server upon power up or other condition, such as a user-initiated connection. The host establishes a persistent connection to the user's PC to facilitate remote access at a later time. The software programmed to the user's PC works with the host server to maintain this connection, and is responsive to commands from the host server in this regard, as well as for facilitating the transfer of data such as media content. In this regard and in the context of other example embodiments herein, the PC programmed with the agent software is an agent processor that interacts with the host server to facilitate the delivery of data. As a result, the user's PC can be implemented as the agent processor referred to in various example embodiments, by executing a program (the agent software).
When the registered user or a remote guest user wishes to remotely access data, the user accesses a web page hosted by the host server, by way of a packet-based remote-user device such as a computer or a hand-held wireless device (e.g., a media playback device or telephone). The user provides authentication information, such as the user name and password described above, and in response the host authenticates the user as an authorized user. The remote-user device is classified using one or more of information provided via the device, predefined information at the user's PC, or other information characterizing the remote Internet access device. Using this classification data, the host and user's PC work together to facilitate the delivery of data to the remote Internet access device (e.g., by controlling the PC via the agent software to stream the media content via the host server for playback at the remote Internet access device).
In some embodiments, the remote user (registered or guest) provides information to the host server characterizing a class or classification of the remote-user device, and this data is stored together with configuration information specifying a data configuration format to use in sending data to the remote-user device. In some applications, this information is provided directly, such as by the remote user making selections from a hosted web page to indicate a desired data type. In other applications, this information is provided indirectly, where the host server and/or PC (via the agent software) determines the type of remote device at which the remote user will be accessing delivered data.
In some applications, the host server determines a format type for data based not only upon a class or classification of a remote device, but further upon available communications mediums over which the data is to be delivered. For instance, the host server may facilitate delivery of high-bandwidth media content upon a determination that the remote-user device has access to a relatively high-bandwidth connection to the Internet, such as via a high-speed wired or Wi-Fi Internet connection, where such high-bandwidth media content is further in an appropriate format based upon the class or classification of the remote-user device. Similarly, the host server may automatically format media content to a relatively low-bandwidth format upon detection that delivery of the media content to the remote-user device will be over a relatively low-bandwidth connection and/or that communications links to the remote-use device are unreliable, also in accordance with an appropriate class/classification format.
The above approaches, as well as those discussed in the figures, are selectively implemented in connection with one or more example embodiments as described in U.S. patent application Ser. Nos. 09/843,249 and 11/056,345, to which priority is claimed above. For example, various approaches to media content transfer, user registration, media content caching, remote access and more, as described in U.S. patent application Ser. No. 11/056,345, are implemented to facilitate remote control of and access to media content such as media at a remote playback device as described herein. In addition, approaches to data delivery in accordance with various communications links and available remote packet-based devices may be implemented as described in U.S. patent application Ser. No. 09/843,249, now U.S. Pat. No. 7,139,834.
In connection with the examples described herein, a registered-user data source from which data is transferred includes a packet-communicating device such as one or more of a personal computer, set top box, web camera, media renderer or content storage system at a home or business location with network access, or any combination thereof. Furthermore, a remote user (e.g., using a remote packet-based device) may include one or more individuals, such as members of a household, employees of a business entity or simply an individual given access authorization by a registered user. In addition, a remote-user device generally includes one or more packet-based devices that facilitate communications over a packet-based network to receive data such as media content, as well as a device that is not necessarily packet-based. Further, a “user” may be a machine functioning automatically, for example, as programmed by an individual.
In the context of various examples described herein and shown in the figures, reference is made to several representative devices, networks and network communication approaches. Various terms such as Internet, web-enabled, packet, packet-based and others may be applicable in the context of different embodiments to facilitate the description of different examples. However, the devices, networks and network communications approaches described in connection with example embodiments herein may be applicable to variety implementations and descriptive terms. For instance, devices that could be described as a packet-based device may include one or more devices that communicate over a path characterized by one or more of a packet-communicative, web-based and/or Internet-based communications links. In this regard, devices referred to as packet-based or Internet-related are selectively implemented using one or more of a variety of packet-communicative approaches, and may include a combination of devices including a device that accesses a packet-based network and another device that is not necessarily packet-based. In addition, such devices may, for example, access the Internet via non-Internet-based communications approach, such as via one or more wired and/or wireless links that use one or more of a variety of communications approaches. Moreover, packet-communicative approaches described herein are applicable to a variety of network communications approaches, including those involving communications referred to in connection with one or more terms relating to packet, frame, block, cell and segment terms.
Turning now to the figures, FIG. 1 shows a system 100 for hosted media routing with device-specific classification and selective configuration, using a packet-based network to facilitate playback at one of a variety of media playback device types, according to another example embodiment of the present invention. The system 100 includes a network-based (host) server 110, a plurality of remote packet-based playback devices 120, 122, 124, 126 and 128, a plurality of registered media content sources 130-N, all of which communicate over a packet-based network 105.
The network 105 includes one or more packet-based networks such as the Internet and, where appropriate, other networks such as a mobile telephone network or a local area network (LAN). In some applications, the network 105 is a local area network implemented for a local premise such as a home or business. In other applications, the network 105 is (or includes) a virtual network or set of virtual application communication channels within a processor or group of processors associated with a computing appliance.
Each of the registered media content sources 130-N includes an agent processor that facilitates communication between the registered media content source and the network-based server 110. Regarding content source 130, such an agent processor 132 directs the selective routing of media content 136 from the registered media content source over the packet-based network 105. In some applications, the agent processor 132 executes agent software downloaded to the content source 130 by the network-based server. In these contexts, the agent processors may be implemented, for example, with a personal computer or other device programmed with agent software functionality.
The remote packet-based devices 120-128 are shown by way of example as a multitude of different kinds of devices, which may implement similar or different media playback characteristics that relate to a device-type of classification (e.g., relating to hardware and/or software type). The devices 120-128 are respectively shown as a personal data assistant 120, laptop 122, video renderer 124 (e.g., a packet-based television) and different types of mobile phones 126 and 128. Such devices may also be implemented as one of the registered media content source 130-N in a manner not inconsistent with that described herein.
The network-based server 110 includes an agent gateway 112 that communicates with the agent processors at the registered media content sources 130-N and a browser gateway 114 that facilitates access by remote packet-based playback devices 120-M using authorization criteria 116. A device classification engine 150 classifies and/or provides data for classifying the remote devices 120-128 using, for example, attributes assigned to particular device classes as described above. In some applications, the device classification engine 150 is implemented separately as shown, and in other applications, is implemented as part of the network-based server 110 (or an arrangement characterized by the same).
Each of the remote devices 120-128 is classified using information provided via the device classification engine 150, and the classification information is used in presenting data to the remote devices. In one example application, a particular set of configuration information (e.g., attributes) is associated with a particular device classification, the information is stored, and the stored information is later used in providing data to remote devices. When one of the remote devices 120-128 requesting data is classified (e.g., by the browser gateway 114), the configuration information corresponding to the classification is used to configure the data for use at the one of the remote devices (e.g., by the network-based server 110 and/or the registered media content source 130). In some applications, classification data for each remote device (e.g., classification and associated configuration data) provided by the device classification engine 150 is stored with a registered media content source to which the remote device seeks and/or is granted access.
In this regard, in response to requests from the remote devices 120-128, media or other data is sent to one of the respective remote packet-based devices with a configuration that is selected in accordance with a classification associated with the device. In some applications, media delivered from the registered media content sources 130-N is configured to a particular configuration relative to the device that the data is being delivered to. In other applications, media is stored at the media content sources 130-N in two or more configurations, and media with an appropriate configuration is accordingly selected and delivered to a requesting remote packet-base device in accordance with a classification of the device.
The configuration of data, or the selection of data in a particular configuration, is carried out at one or both of the network-based server 110 and one of the registered media content sources (130-N) from which the data is sent. Where data selection and/or configuration takes place at the network-based server 110, a configurator 118 carries out the appropriate processing. Where data selection and/or configuration are at the registered media content source from which the data is sent, a configurator 138 (using registered media content source 130 by way of example) carries out the appropriate action. The configurator 138 may, for example, be implemented with the agent processor 132, and downloaded to the registered media content source 130 by the host server 110.
The following approach to remote-user media content access is described in connection with FIG. 1 for one particular example embodiment. A registered user at the registered media content source 130 establishes an account with the network-based server 110 (e.g., for a fee), downloads agent software and installs the agent software at the registered media content source (for implementation by a processor carrying out functions as the agent processor 132).
Once the registered user has installed the agent software, registered for service and stores some sort of media content 136 for remote access, the registered user's media is made available for remote access. The agent processor 132 initiates a communications link with the agent gateway 112 at the network-based server 110 upon startup of the registered media content source 130 (e.g., upon startup of a computer at the registered user's home, which may store or otherwise have access to the media 136 and playlist data 138).
The link established between the agent processor 132 and the agent gateway 112 may be persisted, such that the network-based server 110 can access the registered user media content source 130 without necessarily requiring the at the content source be addressable. This approach is useful, for example, where the registered user content source 130 is a personal computer (PC) on a home network coupled to the Internet, which generally requires that the PC initiate a communications link via the Internet so that the network-based server 110 can in turn communicate with and control the agent processor 132 for directing the routing of media over the Internet.
A remote user at the remote playback device 120 accesses a web page hosted via the browser gateway 114, and provides authentication information such as a user name and password. The browser gateway 114 uses authorization criteria 116 to authenticate the remote user. In some applications, the authentication criteria specifies registered-user preferences, or media rights-base information, for controlling the media access by the remote user.
Once the browser gateway 114 authenticates the remote user, the remote user is presented with a web page characterizing media available at the registered media content source, with the agent gateway 112 retrieving this information from the agent processor 132. The user can then select one or more media files by providing the selections via the web page hosted by the browser gateway 114, and the agent gateway 112 in turn processes the selection by controlling the agent processor 132 to route (e.g., stream) the appropriate media content, via the Internet, to the network-based server 110. In turn, the network-based server 110 provides the media content to the remote packet-based playback device 120.
In another embodiment, the system 100 facilitates electronic token-based classification and access to registered user data as follows. When a user (e.g., owner) of registered media content source 130 wishes to share media content with another user, or to remotely access his or her own media content, the registered user directs the creation of an electronic token that specifies information that can be used to identify media content to which access is to be provided. The media content that is the subject of the token is made available, and in some instances pushed to the network cache 140, and the electronic token is provided for access by a remote user. When such a remote user implements the token (e.g., by providing the token with authorization information to the network-based server 110), the network-based server responds by directing appropriate content, having an appropriate configuration, to the requesting remote user. In some applications, the token includes format, bitrate or other information specifying characteristics of content to be provided via the token; where appropriate, media content is managed or modified by the agent processor 132, configurator 138 or configurator 118 to ensure that the content is available with the desired characteristics. Information for classifying the remote packet-based device making the request is either added to the token a the remote packet-based device or added by the user creating the token where such classification is known (e.g., where a registered user creates a token for a specific device). For general information regarding media content transfer, and for specific information regarding token-based media content transfer applications that may be implemented in connection with these and other example embodiments, reference may be made to U.S. patent application Ser. No. 11/374,414, entitled “Token-based Remote Data Access” and filed on Mar. 13, 2006, which is fully incorporated herein by reference.
In another example embodiment, the network-based server 110 also directs or otherwise controls the caching of media content in the network cache 140, and the delivery of cached media content to the remote packet-based playback devices 120-128. When a registered user at the registered media content source 130 subscribes to storing data in the network cache, the agent processor 132 pushes media content to the network cache 140 directly via the network 105 or via the network-based server 110. Similarly, the agent processor 132 provides media content to the cache 140 to reflect updates in a playlist stored at the cache.
Generally, the cached media content is accessed in a manner similar to that described above in connection with access to the media 136 at the registered media content source 130, with the network-based server 110 directing the delivery of content in the network cache in response to remote user access. The network-based server 110 also facilitates cache access in accordance with the media configuration available at the cache, relative to media available at a corresponding registered user content source. For instance, where requested data in a proper configuration is available in the cache, access to data in the cache may be preferred over access to data at a registered user content source. Based upon a classification of one of the devices 120-128 making a request, data from the cache 140 is configured to suit the classification at the network-based server 110, or if an appropriate configuration is available at the cache, the data with the appropriate conversion is directed for delivery from the cache to the requesting device.
FIG. 2 is a data-flow diagram for a system and approach 200 to device classification and host-controlled delivery of media content to a classified device, according to another example embodiment of the present invention. A browser gateway 220 interacts over the Internet 205 with a plurality of remote-user devices for classification of the devices and delivery of media thereto, using a browser-based interface (e.g., an Internet web page). An agent gateway 230 also interacts over the Internet, but with agent processors installed at a plurality of registered-user devices for directing the delivery of media content from the registered-user devices, over the Internet. In this regard, the browser gateway 220 interacts with remote users by way of a network-based interface without necessarily requiring any special software at devices via which remote users access the browser gateway, and the agent gateway 230 interacts specifically with registered user media sources. While applicable for a multitude of remote and registered users, FIG. 2 shows a single remote-user device 210 and a single registered-user media source 240 for simplicity.
The registered-user media source 240 is a computer or other packet-based device with processing functions suitable for communicating on the Internet 205 (e.g., using a modem) and with other local devices for the routing of media content (e.g., using a local area network). The media source 240 is also programmed with an agent processor that interacts with the agent gateway 230 to establish a connection with the agent gateway for use in serving media requests processed by the agent gateway for the media source 240. Local to the registered-user media source 240, a media storage device 242 and classification storage device 244 are connected to communicate with the registered-user media source. In some applications, one or both of the media storage device 242 and classification storage device 244 are implemented on the registered-user media source 240 (e.g., data stored on a hard drive of a computer), and in other applications, are separate as shown.
The media storage device 242 includes one of a multitude of media devices such as a digital video recorder, a digital audio recorder or a computer for storage of media such as images, video and/or audio. Agent software programmed at the registered-user media source 240 is implemented by an agent processor to make the stored media available, via the agent processor and agent gateway 230, to the remote-user device 210 in response to control inputs received from the agent gateway 230.
The classification storage device 244 includes one or more data storage devices such as a hard drive at the media source 240, a network-based hard drive, or an external hard drive connected to the media source (e.g., via a USB (universal serial bus) port), and stores classification information characterizing devices to which the media source 240 sends data. Classification and/or device class information is stored at the classification storage device 244 using one or more of a variety of approaches. In some applications, this classification information is provided by the agent gateway 230, via the Internet 205, using information obtained via the browser gateway 220 (and, for some applications, using a classification server 260 as described further below). In other applications, some or all of the classification information is provided directly to the media source 240 by a registered user of the media source. For instance, a registered user may establish device classification information by entering in data using a keyboard at the media source 240, either specifying a specific classification or a device type, with the media source determining (e.g., looking up) an appropriate classification based upon the device type in the latter instance. Alternatively and/or in combination with a data entry approach, the registered user may introduce a particular remote-user device (e.g., 210) to the media source 240 and facilitate the communication of information regarding the device's classification directly. Such communication between a remote-user device and the media source 240 may, for example, involve the connection of the two using a communications cable, or a wireless connection, either directly or using a local network such as a wireless LAN.
Generally, the browser gateway 220 and agent gateway 230 interact together to facilitate the classification of remote devices and the delivery of media content in an appropriate format (relating to the classification) to the classified remote devices. In some applications, the browser and agent gateways 220 and 230 are implemented together with a host system (e.g., on a common device or on separate devices connected together at a host location). In other applications, the browser and agent gateways 220 and 230 are implemented separately and communicate over a network such as a local area network, an intra-company network or the Internet 205.
The following description is made in connection with FIG. 2 and the system 200 by way of example, with example data flow shown in the figure and applicable here. However, the system 200 may be implemented with many different data-flow approaches, and further, the following data-flow description may be implemented in connection with one or more of a variety of different systems.
When a remote user at the remote-user device 210 wishes to access media content at the media storage device 242, the remote user implements the remote-user device and sends an access request 211 to the browser gateway 220. The request is made, for example, by clicking on and/or entering an appropriate URL (Uniform Resource Locator) for a web interface hosted by the browser gateway 220. In response to the request 211, the browser gateway 220 presents a web-based interface 221 to the remote-user device 210. The web-based interface 221 includes information and fields to suit particular applications, and for authenticated users, provides information sufficient for communicating media content selections depicting media available to the remote user from the registered-user media source 240.
The browser gateway 220 authenticates the remote user at the remote-user device 210 using one or more of a variety of approaches. In some applications, the browser gateway 220 presents the web-based interface 221 with fields to facilitate the entry of authentication information at the remote-user device 210 (e.g., the user enters a user name and password via the web-based interface). In other applications, the remote user provides authentication information with the request 211, such as information wrapped into the URL referenced above. In certain applications, authentication information is provided by way of an Internet cookie (i.e., information previously provided from the browser gateway 220 to the remote-user device 210) that is stored at the remote-user device and provided to the browser gateway with requests made at the remote-user device. In still other applications, authentication information is provided with later communications requesting data, with authentication performed on a request-by-request basis.
Using the web interface 221, the remote user requests media content by sending a data request 213 to the browser gateway 220, which responds by communicating agent control information 235 for media routing to the agent processor on the registered-user media source 240. The agent control information 235 directs the agent processor to route appropriate media content from the registered-user media source 240 and, where appropriate, to configure the content prior to routing. Where media content is available in an appropriate configuration in its raw form (e.g., the media storage device 242 has content in a format usable by the remote-user device 210), the registered-user media source 240 sends raw media content 241 to serve the agent control information 235 in providing media content to the remote-user device. Where media content is not available in an appropriate configuration, the registered-user media source 240 configures the media and sends configured media content 243 to server the agent control information 235 and provide media content to the remote-user device 210. Whether raw or configured media content (241 or 243) is provided, the content (in either form, represented by requested media 245) is directed to the remote-user device 210 via the agent processor and browser gateways 230 and 220, or directly from the registered-user media source 240 to the remote-user device 210 via the Internet 205.
Information characterizing the class and/or a classification of the remote-user device 210, such as that specifying attributes as described above, is made available for use in providing data to the remote-user device in one or more of a variety of manners, as discussed above. In some applications, device class and/or classification information characterizing the remote-user device 210 is obtained from the remote-user device 210 itself, or determined at the browser gateway 220 in accordance with other information identifying a type, model or other information about the remote-user device. The agent gateway 230 sends classification data 233 (e.g., in an XML (extensible markup language) document, examples described below) to the registered-user data source 240 for use in providing media content and, in some applications, for storing in the class/classification storage 244.
In some applications, a one-time classification and storage sequence is effected between the remote-user device 210 and any other remote-user devices to which the registered-user media source 240 provides data. When a remote user accesses the browser gateway 220 with a particular remote-user device for the first time, the browser obtains information from the remote-user device, either as part of the remote-user access or by initiating a discovery sequence to obtain information from the remote-user device. Classification data 233, which includes an actual device class, classification information and/or information sufficient for ascertaining such class or classification information, is provided to the registered-user data source 240. This information may, for example, include an Internet cookie or other similar information specifying a class for the remote-user device as well as configuration information (e.g., specifying a media content format for the device) which are stored together in the class/classification storage 244. Once stored, this information is subsequently used in providing media content to the remote-user device, such as by facilitating a configuration of data at the registered-user device 240 and, in some applications, by providing information to the agent gateway 230, which uses the information in configuring (or directing the configuration of) data for the remote-user device.
Classification of a particular remote device 210 (by way of example) is carried out at one or more of the browser gateway 220, agent gateway 230 or agent processor implemented at the registered-user data source 240. In some applications, devices are classified using rules that are applied (e.g., in a deterministic order) to information characterizing the remote device 210, to fit the devices into a particular predefined class (e.g., as relative to transcoding, protocol or interface attributes as described above). The number of classes may vary, depending upon the application, but generally includes at least two or three different classes to facilitate the tailoring of data in a manner amenable to efficient and desirable use at a remote playback device.
In one application, a classification server 260 provides classification data for remote devices accessing the browser gateway 220 and returns information to the browser gateway 220 and/or the agent gateway 230 for use in providing appropriate classification data for the remote devices. As with the discussion above regarding the browser and agent gateways 210 and 220, some or all of the classification server 260 may be implemented in connection with a host server arrangement (e.g., 110 in FIG. 1) on a common device or separately, or separately as shown with corresponding communications therebetween.
In one embodiment, the classification server 260 presents a single “device rule” XML document describing both device classification rules and device class descriptions to the agent gateway 230, which in turn provides the XML document to the agent processor at the registered-user data source 240. Individual devices accessing the system are classified at the browser gateway 220, which may, for example, place the device class name in a an HTTP cookie (e.g., a “ClassInfo” cookie) that is used in a manner as described above. Once classified, components of the system 200 (browser gateway 220, agent gateway 230 and agent processor at the registered-user data source 240) use the device class name contained in the ClassInfo cookie to retrieve device class parameters from the Device Rule document. In addition, these parameters can be made available to all XSL (extensible stylesheet language) processing in the system 200 by adding the class description XML to the XML passed to the stylesheet.
In a more particular example embodiment, device classification is carried out as follows, using the aforesaid provided XML document and related approach. The XML document includes a collection of device classification rules that are used to map specific HTTP header values to a device classification, with attributes such as those described above. Each device classification rule has the following attributes: order, classification, and expression. The order defines the order in which classification rules are to be applied to a request from a remote-user device. One or more of the components of the system 200 that implement the rules first sort the classification rules by their order attribute and then apply the rules in ascending order. The classification identifies the device classification to be used when the rule matches the request. The expression defines the logic to be applied when attempting to match the rule to a request. Where no device classification rules match a request, a default device class is used.
Expressions implemented with classification rules are implemented in one or more of a variety of manners. For most embodiments, the expression defines an HTTP header and a string value to search for within the header value. In some embodiments, relatively more complex expressions are used and may, for example, involve one or more of combining multiple headers with AND/OR logic, and supporting some form of regular expressions.
The device class configuration is organized and implemented in one or more of a variety of manners. In some embodiments, devices classes are organized in multiple tree structures. In each tree, each class has a single base device class, and zero or more derived device classes. For instance, a particular tree may involve a particular base device class and multiple subclasses for the base device class, where each subclass may further act as a base device class relative to other subclasses.
Each device class defines a collection of attributes that are used by the components of the system to provide runtime parameterization of system behavior. Each device class inherits the attributes of its base device class; however, each device class is further able to override attributes of its base device class in accordance with various examples. For instance, the attributes of any given device class, x, can be computed by traversing the tree from x toward the root. The attributes of each device class visited are examined and added to x if the attribute is not already present.
In some implementations, one device classification can be flagged as the default device class as discussed above. This default device class is used to assign a device class when no classification rules match the request, or if a request is received from a remote-user device without classification information such as a “ClassInfo” cookie when such information is expected.
The various embodiments described above and shown in the figures are provided by way of illustration only and should not be construed to limit the invention. Based on the above discussion and illustrations, those skilled in the art will readily recognize that various modifications and changes may be made to the present invention without strictly following the exemplary embodiments and applications illustrated and described herein. For example, the functions carried out by servers, media content sources, playlist managing devices (including software-implemented devices), and network caches are selectively implemented together and/or in different arrangements, depending upon the application. Further, media playlist content sources are selectively implemented with mobile-type devices, such as mobile Internet appliances (e.g., mobile telephones, laptops or personal devices); media content can be made available from such devices to other remote devices. These approaches are implemented in connection with various example embodiments of the present invention. Such modifications and changes do not depart from the true spirit and scope of the present invention, including that set forth in the following claims.

## Claims

1. An apparatus comprising:
a hardware processor and a memory including computer program code configured to, with the processor, cause the apparatus to perform at least the following:
register a packet-communicating terminal for sharing data from the packet-communicating terminal;
receive, from the packet-communicating terminal remote from the apparatus, one or more caching policies by which to store the shared data at one or more caches;
program the packet-communicating terminal with the one or more caching policies to push the shared data from the registered packet-communicating terminal into the one or more caches, the one or more caches designated as network caches located remotely from the apparatus and remotely from a media source that receives the shared data associated with the packet-communicating terminal, the media source located remotely from the apparatus and the packet-communicating terminal;
implement a cache engine according to the one or more caching policies to provide the shared data to the one or more caches by the apparatus, over a packet-communicating network, as a function of the one or more caching policies and of a current status of the shared data that is stored at the one or more caches; and
in response to a request from a remote user device of the media source for the shared data, direct a transfer of the shared data in the one or more caches over the packet-communicating network to the remote user device.

2. The apparatus according to claim 1, wherein the packet-communicating terminal comprises one of a PC, mobile telephone, and a digital media player.

3. The apparatus according to claim 1, wherein the packet-communicating terminal is accessed via a browser gateway.

4. The apparatus according to claim 3, wherein the browser gateway authenticates the request.

5. The apparatus according to claim 1, wherein the one or more caches are part of a network cache.

6. The apparatus according to claim 1, wherein the one or more caches are part of the registered packet-communicating terminal.

7. The apparatus according to claim 1, wherein the one or more caches are part of both a network cache and the registered packet-communicating terminal.

8. The apparatus according to claim 1, wherein the apparatus is further caused to:
generate a notification that specifies the data to be shared; and send the notification to the remote user device.

9. The apparatus according to claim 8, wherein the request includes information in the notification.

10. The apparatus according to claim 1, wherein the cache engine is within the registered packet-communicating terminal.

11. An apparatus comprising:
a hardware processor and a memory including computer program code configured to, with the processor, cause the apparatus to perform at least the following:
control a registered user data source for sharing data from the user data source and to provide user-provided data to one or more caches in accordance with one or more caching rules specified by the registered user data source, the one or more caches designated as network caches located remotely from the apparatus and remotely from the user data source, wherein a cache engine is implemented according to the one or more caching rules to push the shared data, over a packet-communicating network, into the one or more caches by the apparatus as a function of the one or more caching rules and of a current status of the shared data that is stored at the one or more caches;
in response to a content request from a remote packet-communication device of the user data source, authenticate the request as a function of authentication information provided by the registered user data source and information in the request;
in response to the request being authenticated, ascertain availability of the requested content at the one or more caches in accordance with the one or more caching rules;
in response to the requested content being available at the one or more caches and in accordance with the one or more caching rules, selectively direct the transfer of the requested content from the one or more caches to the remote packet-communication device.

12. The apparatus according to claim 11, wherein the remote packet-communication device comprises one of a PC, mobile telephone, and a digital media player.

13. The apparatus according to claim 11, wherein the remote packet-communication device is accessed via a browser gateway.

14. The apparatus according to claim 13, wherein the browser gateway authenticates the request.

15. The apparatus according to claim 11, wherein the one or more caches are part of a network cache.

16. The apparatus according to claim 11, wherein the one or more caches are part of the registered user data source.

17. The apparatus according to claim 11, wherein the one or more caches are part of both a network cache and the registered user data source.

18. The apparatus according to claim 11, wherein the apparatus is further caused to:
generate a notification that specifies the data to be shared; and send the notification to the remote data communication device.

19. The apparatus according to claim 18, wherein the request includes information in the notification.

20. The apparatus according to claim 11, wherein the registered user data source comprises a cache engine for facilitating pushing data from the registered user data source to a network cache in accordance with the one or more caching rules.