The present inventive subject matter is related to syndicated feed reception.
Content syndication is an XML-based format that allows web developers to describe and syndicate web site content. The syndicated feed is provided by publishing a list of content in a standardized format that can then be downloaded by feed reader programs that allow users to subscribe to the feeds.
Two common syndication formats include Really Simple Syndication (RSS) and Atom. The RSS 2.0 format is published by the RSS Advisor Board at RSSboard.org and the Atom syndication format is published by the Internet Engineering Task Force (IETF) Request for Comments (RFC) 4287, the contents of which are incorporated herein by reference. Atom and RSS content complies with an Atom or RSS extensible markup language (XML) schema that provides a limited number of parameters. Such parameters describe the content and how an RSS and Atom reader can make use of it. Examples of such of parameters include: title, source, description, link, contributor, category, among others.
Atom and RSS schemas contain parameters that are used to provide a reference to additional content, such additional content being related to the syndicated feed fragment in which the reference is found. This additional content can be a media such as an audio or video, package in a file (e.g., 3GPP file format) or in a stream (RTSP); or can be an HTML page. As used herein, this additional reference is called an enclosure.
Some embodiments are illustrated by way of example and not limitation in the figures of the accompanying drawings in which:
In an embodiment current Atom or RSS feeds are retrieved by an RSS/Atom parser in an HTTP stateless pull request. The open mobile alliance (OMA) dynamic content delivery (DCD) specification (Technical specification candidate version 1.0 as of Jun. 12, 2009 available at http://www.openmobilealliance.org/) defines ways to optimize the delivery of Atom and RSS content by proxying the content on a server, such server being able to push, broadcast the content based on a variety of preferences such as delivery preferences, scheduling information, content type and mime-type of interest for a piece of user equipment (UE, e.g., a mobile electronic device) etc.
The OMA DCD specification assumes that a UE is registered to a DCD server at which the content is available. The OMA DCD specification further describes how to perform subscriptions to content channel (or feed) that are not available at the DCD server. However, DCD does not solve the problem of ad-hoc activation of the UE to the delivery server associated with discovered content and subscription to such content. For 3GPP syndicated feed reception (SFR), in an example embodiment, where such content is a syndicated feed and such server is a SFR server the problem translates into the following: when a UE discovers a feed (e.g. via a web browser) and provides the feed uniform resource identifier (URI) to the syndicated feed parser (i.e. SFR-enabled RSS or Atom parser), the feed parser should be able to determine if the feed is a regular Atom/RSS feed or if this is an SFR-optimized feed. Furthermore, in an embodiment, it should be possible at the feed discovery step to advertise available delivery methods (e.g. HTTP pull) and address/port of server at which the feed can be subscribed (subscription to the feed means ability to obtain initial content and content updates via pull, push or broadcast methods). Such information may allow an SFR-enabled feed reader to activate with and register to the previously unknown SFR delivery server and then subscribe to the discovered SFR feed to benefit of SFR-optimized delivery.
The mobile electronic devices 104, 106 may include one or more network interface devices that are operable to communicate over the at least one network 108. The mobile electronic devices may include, but are not limited to, mobile telephones, portable computers, personal digital assistants, and other devices that may be carried by a user and provide wireless communication. Mobile telephones include wireless communication devices that have generally been referred to as cell phones. Mobile telephones may include a wide range of communication devices from portable phones with limited functionality beyond voice communication to portable phones capable of providing the functionality of a personal computer. Mobile electronic device 104 further includes a browser 101 and syndicated feed reception (SFR) client 103. The browser may be used to navigate to a data item (e.g., a web page) that includes a content link 102. The content link may identify one or more syndicated feeds managed by servers 110, 112. SFR client 103 may manage (e.g., subscribe to, communicate with one or more servers) a syndicated feed identified by the content link 102.
Connections between the mobile electronic devices 104, 106 and the at least one network 108 may include one or more wired or wireless connection possibilities. Examples of wireless connections may include connections to mobile radio networks operating at one or more frequencies according to one or more protocols of such networks (e.g., CDMA, GSM/EDGE UTRAN, E-UTRAN etc.). The wireless connections may also, or alternatively, include wireless networking connections, such as connections that provide IP connectivity (e.g., IEEE 802.11WiFi, WiMAX, etc.). The connections may also include shorter range wireless connections to other devices that provide access to the at least one network 108. An example of such a shorter range wireless connection is a Bluetooth wireless connection to another device, such as a personal computer, that is connected to the at least one network 108. A further example of such a shorter range wireless connection is a Near Field Communication (NFC) wireless, contactless connection between mobile electronic devices 104, 106, connected to the at least one network 108. Wired connections may include a wired Ethernet connection between a mobile electronic device 104, 106 and the at least one network 108. Other connections may include a wired connection, such as a Universal Serial Bus (USB) wired connection to a USB port of a computing device in communication with the at least one network 108.
The at least one network 108 may include any number of network types, such as one or more of mobile telephone networks, wireless computer networks, and wired computer networks. The at least one network may be interconnected with one or more of the Internet, Local Area Networks (LAN), proprietary networks including content limited to access only by subscribers of particular services, and other networks. Although two servers 110, 112 are illustrated, there may instead be one server, or more than two servers.
The servers 110, 112 may provide syndicated content (also referred to as a content feed) such as an Atom/RSS feed. In an embodiment, at least one of the servers is an optimized content feed server. For example, the server may be a syndicated feed reception (SFR) server. An optimized content server is a server capable of managing optimized content feeds for multiple mobile electronic devices equipped with an SFR client. In an embodiment, the combination of an SFR server and a mobile electronic device with an SFR client allows a syndicated feed to be delivered to the mobile electronic device according to preferences related to the capabilities of the mobile electronic device and settings of a content feed provider (e.g., broadcast at night, according to a publication schedule).
The servers are accessible by the mobile electronic devices 104, 106 over the at least one network 108. Content provided by the servers 110, 112 in the form of a syndicated feed may be stored on the respective server, in another location, such as in a database 114, accessible by a server 110, 112 or elsewhere as may be retrieved by the servers 110, 112. Content provided by the servers 110, 112 may also be derived content that may be calculated, assembled, or otherwise determined by the servers 110, 112, such as in response to a query or other request received from a mobile electronic device 104, 106.
In an example use of system 100, a user discovers (e.g. via a web browser) one or more syndicated feed to which the user wants to subscribe. The SFR client receives a single uniform resource identifier (URI) as an input and determines if it is an SFR optimized feed or if it is a regular Atom/RSS feed. In an embodiment, a mobile electronic device is already connected to one or more optimized content feed servers (also referred to as SFR servers). In a further embodiment, an external channel discovery and subscription mechanism allows an SFR client to discover and subscribe to content feeds that are not available at the SFR servers it is currently connected to.
As an example, a subscription model is described using a current SFR server already associated with a mobile electronic device. An internal subscription mechanism (i.e. via an SFR client) may be used to subscribe to a content feed. As an example, the SFR client may pass a subscription request to an SFR server that subscribes to the content feed on behalf of the SFR client as described in OMA DCD specification.
In a further example, an external subscription mechanism is utilized (e.g. via a web browser) to subscribe to an external feed. Such a discovery and subscription mechanism may not involve an SFR client and may not involve the SFR server (e.g. subscription on a specified web portal), though the SFR server is notified upon the subscription and in turn notifies the SFR client to validate the subscription as described in the OMA DCD specification.
In an embodiment activation/subscription to a new SFR server may be performed in a number of ways. For example, upon discovery of an external feed, the SFR client retrieves information about the SFR server associated with the feed. The SFR client activates with this new SFR server and the SFR client further subscribes to the feed. In a further example, when discovering an external feed, the SFR client provides its information in the discovery request (e.g. via HTTP headers or UAProf) and the SFR server uses server-initiated activation to establish a corresponding relationship with this SFR client.
External Channel Discovery and Subscription Using Current SFR Server
In an internal subscription to an external channel scenario, the SFR client is already activated and registered to an existing SFR server and may already have subscribed to channels discovered via the internal discovery method. The user discovers a feed via means other than the SFR client (e.g. via a web browser) and, following the feed discovery process, the SFR client is provided with the feed URI. The SFR client relays the feed URI to the SFR server in order for the SFR server to perform a subscription to this external channel. The SFR client submits the subscription request with a message-ID, session-ID, Content-Address, and Subscription ID, if specified. The SFR server registers to the feed by exchanging a request for channel registration, a channel registration request, and a channel registration response with the content provided. A subscription request and a subscription response are also exchanged as described in OMA DCD specification.
In a scenario whereby the feed provider is not a SFR content provider and does not support the messages exchanged above, the SFR server retrieves the content from the feed provider via an HTTP GET request and inserts the relevant metadata in the feed both for optimized handling of enclosures and for optimized delivery.
In an external subscription for an external feed the user discovers a feed via other means (e.g. from a web portal) and provides the relevant information (e.g., a device context) to receive the feed on its SFR terminal as described in OMA DCD specification. The feed is routed via the SFR server to which the terminal is connected. (For instance, if a phone number is identified as belonging to a particular mobile network operator the feed provider knows the SFR server of that carrier)
External Discovery and Activation/Subscription Via a New SFR Server
In an embodiment, a user discovers a feed via means other than an SFR client (e.g. via a web browser) and, following the feed discovery, the SFR client is provided with a feed URI. The SFR Client is able to identify whether this feed is an SFR feed or a legacy Atom/RSS feed. To identify whether the feed is an SFR feed associated with a new SFR server, the SFR client and SFR server may use one of the following discovery and activation/subscription methods.
Upon discovery of an external feed, the SFR client gets information about the SFR server associated with this feed. The SFR Client initiates the activation process toward the new SFR server and subscribes to the feed. There are at least two options to disclose such information. In one embodiment, the SFR feed URI follows a predefined URI scheme that allows to specify the SFR server at which the feed is available and provide relevant connection parameters associated with the SFR server as part of feed URI. In another embodiment, the feed discovery response contains the SFR server information and connection parameters as part of the HTTP headers.
In a further example embodiment, when discovering an external feed, the SFR client in the discovery HTTP request, provides device context information (i.e. device identity and SFR capabilities). Such information may be provided using dedicated HTTP header(s) and/or attached User Agent Profile (UAProf), (e.g., either as an HTTP header or using multipart HTTP request). The SFR server (with which the external feed is associated) uses the server-initiated activation process to establish a relationship with this SFR client using provided device context to address the device. In an embodiment, the HTTP header in the discovery request contains the SFR client connection information. Upon reception of such parameters, the SFR server initiates the activation process with the SFR client. In a further embodiment, the SFR client provides the UAProf as a part of the discovery request. Upon reception of such parameters, the SFR server initiates the activation process with the SFR client. In some embodiments, the SFR server may use intermediary (e.g. another server such as delivery proxy) to perform the activation process with the SFR client.
An SFR feed that is hosted or that can be retrieved on an SFR server may provide information within the URI for an SFR client to activate and subscribe to the required SFR server. In an embodiment, in order for SFR client to connect to a new SFR server, the following parameters are included in the URI: an SFR server address, proxy information, and data connection details. Also included is one of the following parameters to facilitate subscription to the discovered feed: a channel identifier and a content address.
In an embodiment the SFR address is the (URL) of the SFR server with which the SFR Client should activate. The proxy may be an address (IP address or hostname) of the proxy that should be used for communications with SFR server. This parameter may be omitted if no proxy is required to connect to the SFR server. The data connection details may include additional bearer-network-specific connection details e.g., APN, data connection username/password, etc. This parameter may be omitted if no additional data connection details are required to connect to the SFR server. In an embodiment the channel identifier is an identifier assigned to the channel corresponding to the discovered feed. In Atom/RSS the channel identifier parameter may correspond to feed identifier specified according to the Atom or RSS schema. The content-address may be a dedicated address (URI) associated with a discovered Atom or RSS feed. An example of SFR URI may be
According to an example embodiment, upon receipt of the parameters, the SFR client sends an activation request message to the server address retrieved as part of the URI parameters. Once the SFR client activation is complete, an SFR client sends optional registration and channel subscription request(s). The SFR client may combine all 3 requests into a single request using multipart HTTP requests. With this approach the assumption is that authentication (basic, digest, or TLS) associated with activation request is sufficient to facilitate registration and subscription combined into the single transaction with activation. In other words, as registration and subscription requests are bundled with authenticated activation request there is no need to send session ID with these requests. This may be done using HTTP POST or PUT providing appropriate parameters in the message or using HTTP GET with REST-ful approach of overloading URL with the transaction parameters. In some embodiments, logical operations of activation, registration, and subscription can be combined into a single message. This message establishes relations between the SFR client and the SFR server and specifies SFR feed of interest for the SFR client.
In the example embodiment shown in
In an embodiment, the browser is used to retrieve a page that contains an RSS/Atom link which is passed to the SFR optimized feed reader (SFR client). The SFR client fetches the link to get the feed. This corresponds to a discovery request to the feed provider. Upon receipt of the discovery request from an SFR client, the feed aggregator/provider provides server information and connection parameters in the HTTP header of the HTTP response as described below. In an embodiment, the SFR header indicates to the parser client that this is an SFR enabled feed. In an embodiment, the version is a required parameter for every response that carries an SFR enabled feed. In some embodiments, the feed aggregator/provider may attach such header to the initial request from the browser (e.g., if a browser request contains an indication that device is SFR-enabled). In such embodiments, the SFR client does not need to connect to the feed (as shown in
SFR extension-header field:
Message-header=SFR
field-name=Version
field-name=server-address
field-name=proxy
field-name=connectionDetails
One of the two parameters to facilitate the subscription for the discovered feed:
field-name=channelID
field-name=content-address
Example of HTTP response header:
Upon receipt of the response parameters, the SFR client sends an activation request message to the server-address retrieved from the corresponding header parameter. Once the SFR client activation is completed, an SFR client optional registration and channel subscription request is completed. The SFR client may combine all three requests into a single request using multipart HTTP requests as previously described. In some embodiments, logical operations of activation, registration, and subscription could be combined into a single message. This message establishes relations between the SFR client and the SFR server and specifies SFR feed of interest for the SFR client.
In the example embodiment shown in
As illustrated, upon discovering of a feed, the SFR client provides the following SFR parameters in the header of the HTTP discovery request to provide device context and to announce its SFR related capabilities. In an example embodiment, the SFR extension-header field comprises:
Message-header=SFR
field-name=Version
field-name=DeviceID
Example of HTTP request header:
In an embodiment, when the SFR client sends this request to the SFR feed URI, the SFR Server associated with the SFR feed sends to the SFR client a RequestForClientActivation message. This message triggers SFR client activation with this SFR server. Once the SFR client activation is completed this is followed by an SFR client registration and channel subscription request. The SFR client may combine all three requests into a single request using multipart HTTP requests as previously described.
In the example embodiment shown in
In an embodiment the SFR client passes the UAProf with the following extensions when sending the HTTP GET discovery request message to the feed URI. A UAProf
Attribute=SFR Version
Attribute=DeviceID
Upon receipt of the extended UAProf, the new SFR server sends to the SFR client a RequestForClientActivation message as specified. This is followed by an SFR client optional registration and channel subscription request. The SFR client may combine all three requests into a single request using multipart HTTP requests as previously described. In some embodiments, logical operations of activation, registration, and subscription could be combined into a single message. This message establishes relations between the SFR client and the SFR server and specifies SFR feed of interest for the SFR client.
In the example embodiment shown in
Alternative Enclosures in Content Feed
In the 3GPP SFR specification, an alternative enclosure may be defined, allowing to specify the mime-type, codec and parameters that relate to the content to be retrieved.
In an embodiment in which a header is used, the “accept header” from RFC 2616 is used with the following field and values when fetching a feed enclosure:
Message header=Accept
media-range=Should be used to indicate both the mime type and codec parameters as they are defined in RFC 4281 or 3GPP PSS specification.
q=can be used to announce the level of preference for supported media if multiple content versions are available.
An example of an “accept header” that be used when fetching an enclosure or alternative enclosure is:
An example of a UAProf that may be used to declare supported mimetype may be extended with codec parameters as par RFC4281:
One example computing device is in the form of a mobile electronic device 710. The mobile electronic device 710 is an example of the mobile electronic devices 104, 106 described above with regarding
The mobile electronic device 710 typically operates in a networked environment using the communication connection device 720 to connect to one or more networks, such as network 108 described above with regard to
Machine-readable instructions stored on a machine-readable medium are executable by the processing unit 702 of the mobile electronic device 710. The memory 704, removable storage 712, and non-removable storage 714 are some examples of articles including a machine-readable medium. For example, a program 725 with instructions that may be executed by the processing unit 702 to cause the mobile electronic device 710 to perform one or more of the methods described herein may be stored on a machine-readable medium, such as the memory 704. Other programs 725 may also be stored on a machine-readable medium, such as a browser application 726 providing web browsing functionality of the mobile electronic device 710. Further, the programs 725 may include an SFR client application that may be operates to subscribe to one or more SFR servers.
Another embodiment is in the form of a computing device, such as a mobile electronic device. The computing device in this embodiment includes at least one processor, at least one memory device, a network interface device, and a user interface device (e.g., display device). Stored in the at least one memory device is a SFR client application, and a browser application. In an example embodiment, the SFR client application is an application that is executable to manage SFR feeds.
It will be readily understood to those skilled in the art that various other changes in the details, material, and arrangements of the parts and method stages which have been described and illustrated in order to explain the nature of the inventive subject matter may be made without departing from the principles and scope of the inventive subject matter as expressed in the subjoined claims.
This application is a continuation of U.S. patent application Ser. No. 12/838,289, filed on Jul. 16, 2010, which claims the benefit of priority under 35 U.S.C. §119(e) of Martin-Cocher, Gaelle Christine, U.S. Provisional Patent Application Ser. No. 61/226,188, entitled “METHOD AND SYSTEM TO DISCOVER AND SUBSCRIBE TO AN ENHANCED SYNDICATED FEED,” filed on Jul. 16, 2009 (Attorney Docket No. 36123-US-PRV (2558.042PRV), the applications are hereby incorporated by reference herein in their entirety.
Number | Date | Country | |
---|---|---|---|
61226188 | Jul 2009 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 12838289 | Jul 2010 | US |
Child | 13244819 | US |