U.S. patent application number 14/632307 was filed with the patent office on 2017-02-16 for device classification for media delivery.
The applicant listed for this patent is Nokia Corporation. Invention is credited to Michael J. Albanese, Keith BARRACLOUGH, James Roland Henderson, David IRVINE, Rodrigo Philander.
Application Number | 20170048201 14/632307 |
Document ID | / |
Family ID | 56799694 |
Filed Date | 2017-02-16 |
United States Patent
Application |
20170048201 |
Kind Code |
A9 |
BARRACLOUGH; Keith ; et
al. |
February 16, 2017 |
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.
Inventors: |
BARRACLOUGH; Keith;
(Mountain View, CA) ; IRVINE; David; (San Jose,
CA) ; Philander; Rodrigo; (Sunnyvale, CA) ;
Albanese; Michael J.; (San Jose, CA) ; Henderson;
James Roland; (Morgan Hill, CA) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Nokia Corporation |
Espoo |
|
FI |
|
|
Prior
Publication: |
|
Document Identifier |
Publication Date |
|
US 20160255052 A1 |
September 1, 2016 |
|
|
Family ID: |
56799694 |
Appl. No.: |
14/632307 |
Filed: |
February 26, 2015 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
11700345 |
Jan 31, 2007 |
9143545 |
|
|
14632307 |
|
|
|
|
11056345 |
Feb 11, 2005 |
|
|
|
11700345 |
|
|
|
|
09843249 |
Apr 26, 2001 |
7139834 |
|
|
11056345 |
|
|
|
|
Current U.S.
Class: |
1/1 |
Current CPC
Class: |
H04L 67/104 20130101;
H04L 67/2842 20130101; H04L 67/26 20130101; H04L 63/0281 20130101;
H04L 67/2852 20130101; H04L 63/08 20130101; H04L 63/10 20130101;
H04L 65/60 20130101 |
International
Class: |
H04L 29/06 20060101
H04L029/06; H04L 29/08 20060101 H04L029/08 |
Claims
1. An apparatus comprising: a 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, 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 store the shared data at the one or more caches; implement a
cache engine according to the one or more caching policies to
provide the shared data to the one or more caches, 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 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 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 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; in response to a content request
from a remote packet-communication device, 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.
Description
RELATED PATENT DOCUMENTS
[0001] This patent document 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. .sctn.120 to both of these documents for
common subject matter.
FIELD OF THE INVENTION
[0002] 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
[0003] 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.
[0004] 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.
[0005] 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.
[0006] 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.
[0007] 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
[0008] 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.
[0009] 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.
[0010] 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.
[0011] 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.
[0012] 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.
[0013] 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
[0014] 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:
[0015] 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
[0016] 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.
[0017] 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
[0018] 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.
[0019] 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.
[0020] 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).
[0021] 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.
[0022] 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.
[0023] 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.
[0024] 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.
[0025] 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.
[0026] 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.
[0027] 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.
[0028] 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).
[0029] 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).
[0030] 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.
[0031] 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.
[0032] 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.
[0033] 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.
[0034] 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.
[0035] 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.
[0036] 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.
[0037] 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.
[0038] 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.
[0039] 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).
[0040] 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.
[0041] 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.
[0042] 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.
[0043] 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).
[0044] 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).
[0045] 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.
[0046] 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.
[0047] 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.
[0048] 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.
[0049] 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.
[0050] 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.
[0051] 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.
[0052] 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.
[0053] 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.
[0054] 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.
[0055] 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.
[0056] 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.
[0057] 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.
[0058] 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.
[0059] 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.
[0060] 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.
[0061] 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.
[0062] 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.
[0063] 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.
[0064] 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.
[0065] 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.
[0066] 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.
[0067] 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.
[0068] 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.
[0069] 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.
[0070] 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.
* * * * *