1. Field of Invention
This invention relates to information technology and communications and, in particular, to a method and system for managing information feed delivery to a communications device.
2. Description of Related Art
Many mobile communications devices, including mobile telephones such as cellular telephones and satellite telephones, personal digital assistants and wireless communications devices, include web browsers for accessing and browsing the Internet and other data communications networks. However, such mobile web browsers are of limited use due to restricted keyboard entry and limited functionality. Thus, it is cumbersome for users to key in usernames and passwords.
Many mobile web browsers included in mobile communications devices are limited in functionality and are not able to receive web feeds such as Really Simple Syndication (RSS) formatted feeds. Software programs such as feed readers have been developed to permit mobile web browsers to receive RSS feeds. However, the user must download and install such software into their mobile communications device, which is inconvenient to the user.
Even with a feed reader installed in the mobile communications device, many mobile web browsers are unable to combine content from non-feed sources and content from feed sources into a single feed that is updated automatically when there is a change in the content from either a non-feed source or a feed source.
The above shortcomings may be addressed by providing, in accordance with one aspect of the invention, a method of managing information feed delivery to communications devices involving initializing a user account. The method involves receiving a communication identifying a communications device; generating a communications device identifier for identifying the communications device; and recording the communications device identifier in association with an information feed associated with an information publisher.
Receiving a communication identifying a communications device may involve receiving the communication identifying a mobile telephone number of the communications device. Generating a communications device identifier identifying the communications device may involve generating a passcode associated with the communications device. The method may further involve transmitting the passcode to the communications device. Recording the communications device identifier in association with an information feed associated with an information publisher may involve recording the communications device identifier in association with the communications device and an information feed associated with an information publisher. Recording the communications device identifier in association with an information feed associated with an information publisher may involve recording in a database the communications device identifier in association with the information feed associated with the information publisher. Recording the communications device identifier in association with an information feed associated with an information publisher may involve storing in a database a passcode in association with the information feed. Recording the communications device identifier in association with an information feed associated with an information publisher may involve recording the communications device identifier in association with the mobile telephone number of the communications device. Recording the communications device identifier in association with an information feed associated with an information publisher may involve associating the information feed with the information publisher. Associating the information feed with the information publisher may involve associating a content object of the information publisher with the information feed. Associating the information feed with the information publisher may involve receiving a second communication identifying the information publisher. Receiving a communication identifying the communications device may involve receiving a communication identifying the communications device and identifying the information publisher.
In accordance with another aspect of the invention, there is provided a method of managing information feed delivery to communications devices involving updating information feeds for delivery to communications devices. The method involves associating a content object of an information publisher with an information feed for delivery to a communications device; receiving from the information publisher an updated content object for association with the information feed; and producing in response to the updated content object an updated information feed to replace the information feed.
Receiving from the information publisher an updated content object for association with the information feed may involve retrieving the updated content object from the information publisher after receiving a communication from the information publisher indicating the content object has been updated. Producing in response to the updated content object an updated information feed to replace the information feed may involve producing a translated content object by translating the updated content object from a first language to a second language and associating the translated content object with the updated information feed. Producing a translated content object may involve translating the updated content object from a first language, which is incompatible with a markup language, to a second language, which is compatible with the markup language. Producing a translated content object may involve translating the updated content object from a first language, which is incompatible with Really Simple Syndication (RSS), to a second language, which is compatible with RSS. The method may further involve transmitting the updated information feed to the communications device. Producing a translated content object may involve translating the updated content object from a first language, which is incompatible with an ATOM protocol language, to a second language, which is compatible with the ATOM protocol language. Transmitting the updated information feed to the communications device may involve producing a converted information feed by converting the updated information feed from a first language format to a second language format and transmitting the converted information feed. Producing a converted information feed may involve converting the updated information feed from a first language format, which is incompatible with a browser of the communications device, to a second language format, which is compatible with the browser. Producing a converted information feed may involve converting the updated information feed from a first markup language format to a second markup language format. Producing a converted information feed may involve converting the updated information feed from an extensible markup language (XML) format to a second language format selected from the group consisting of hypertext markup language (HTML), extensible hypertext markup language (XHTML) and wireless markup language (WML). Transmitting the updated information feed to the communications device may involve receiving from the communications device a request for delivery of a requested information feed and transmitting the requested information feed. Transmitting the updated information feed to the communications device may involve transmitting to the communications device one or more identifiers associated with one or more information feeds available for delivery to the communications device, respectively. The method may further involve transmitting to the communications device, after producing the updated information feed, an output communication indicating that the information feed has been updated. Associating a content object of an information publisher with an information feed for delivery to a communications device may involve associating a plurality of content objects of a plurality of information publishers with an information feed, respectively.
In accordance with another aspect of the invention, there is provided a system for managing information feed delivery to a communications device. The system includes an initialization component for associating a communications device with one or more information feeds associated with each of one or more information publishers; an updating component for updating the one or more information feeds; and a database for storing an identifier uniquely identifying the communications device in association with the one or more information feeds.
In accordance with another aspect of the invention, there is provided a computer program product comprising computer executable instructions embodied in a signal bearing medium for performing at least one method described herein.
The signal bearing medium may include at least one of a recordable computer readable medium and a signal transmission type medium.
Other aspects and features of the present invention will become apparent to those of ordinary skill in the art upon review of the following description of embodiments of the invention in conjunction with the accompanying figures and claims.
In drawings which illustrate by way of example only embodiments of the invention:
A system for managing information feed delivery to a communications device includes initialization means for initializing the system; database means for storing system data; and updating means for updating the system data.
Referring to
An information feed can include any information or data presentable as a feed such as a web feed document, including information or data presentable, after performing a translation process, as a feed. An information feed typically contains content items obtained from an information publisher, such as a news website, weblog, podcast or other information publisher, for example. The information feed can be formatted according to any standard such as RSS or ATOM. It is not necessary for operability of the present invention for content items to be formatted according to any particular standard when being obtained from an information publisher.
The system 10 includes a server 12 having a processing circuit, such as the processor 14 shown in
The server 12 may be any computing device such as a general purpose computer, microcomputer, minicomputer, mainframe computer, distributed networked computer, functionally equivalent discrete hardware components and any combination thereof, for example.
The processor 14 is typically a processing circuit that includes one or more circuit units, such as a central processing unit (CPU), digital signal processor (DSP), embedded processor, etc., and any combination thereof operating independently or in parallel, including possibly operating redundantly. The processor 14 may be implemented by one or more integrated circuits (IC), including being implemented by a single monolithic integrated circuit (MIC). The processor 14 may include circuitry for storing memory, such as digital data, and may comprise the memory circuit 16 or be in wired communication with the memory circuit 16, for example.
Typically, the memory circuit 16 and the database 18 are each all or part of a digital electronic integrated circuit, and may each be implemented by one or more integrated circuits (IC), including being implemented by a single monolithic integrated circuit (MIC). The memory circuit 16 and the database 18 may be implemented as Read-Only Memory (ROM), Programmable Read-Only Memory (PROM), Erasable Programmable Read-Only Memory (EPROM) or Electrically Erasable Programmable Read-Only Memory (EEPROM), flash memory, one or more flash drives, universal serial bus (USB) connected memory units, magnetic storage, optical storage, magneto-optical storage, and any combination thereof, for example. The memory circuit 16 and the database 18 may be operable to store memory as volatile memory, non-volatile memory, dynamic memory, and any combination thereof.
The database 18 may be implemented as part of the processor 14, the memory circuit 16, or may be implemented separately from the server 12 as shown in
In the first embodiment, the server 12 is connected by a server connection 22 to a communications network such as the network 24 shown in
The system 10 is typically operable to run any one or more operating systems, including real-time operating systems, non-real time operating systems, multi-tasking operating systems, and any combination thereof. The system 10 may be operable to implement multi-tasking methods involving multiple threads of executable code, for example.
Source devices 26 are shown in the exemplary arrangement of
Communications devices such as the mobile telephones 30 of users (not shown) are shown in the exemplary arrangement of
Any number of network devices 31 can be connected to the network 24 by network connections 33 as shown in
Referring to
When electrical power is being supplied to the processor 14 and the memory circuit 16, the processor 14 is directed to begin executing the instructions of block 36, possibly before, after or in conjunction with other tasks the processor 14 is operable to perform. Block 36 directs the processor 14 to initialize a user account.
Referring to
Block 42 then directs the processor 14 to generate a communications device identifier for identifying the communications device.
Block 44 directs the processor 14 to record the communications device identifier in association with an information feed associated with an information publisher.
A person of ordinary skill in the art will appreciate that the steps of method described herein and illustrated in accompanying figures need not necessarily be performed in the exemplary order described and illustrated herein, unless stated otherwise. After blocks 40 to 44 have been executed, the processor 14 is directed to end the method 38 and return to the method 34 of
In
In general, the communication may not have been transmitted to the processor 14 in response to any activity of the system 10. Typically an information publisher operable to use system 10 services has installed therein a link or other executable code associated with a web page that displays on the web page a web page button indicating that an RSS feed, ATOM feed, data or other information feed can be delivered to the user's mobile telephone 30 (
In the case where a user account does not already exist, block 50 directs the processor 14 to generate a passcode identifying the communications device. Preferably, the passcode is generated for identifying the communications device in association with an information feed associated with the information publisher. The passcode can be any password, passphrase, alphanumeric code or other identifying means for identifying the given user's mobile telephone 30 (
Block 52 then directs the processor 14 to store the passcode in association with the mobile telephone number and the information feed associated with the information publisher. In the first embodiment, the system 10 stores the passcode in the database 18. Additionally or alternatively, the content objects associated with the information feed may also be stored in the database 18 for later retrieval.
Block 54 then directs the processor 14 to transmit the passcode to the communications device such as the given mobile telephone 30 (
After block 54 has been executed, the processor 14 is directed to return to the method 34 of
Block 56 directs the processor 14 to determine whether an input has been received by the system 10. If no input has been received, the processor 14 is directed to return to block 56 itself, thereby permitting the system 10 to wait for a received input. When an input has been received, the processor 14 is directed to execute block 58.
Block 58 directs the processor 14 to process the received input. Such processing depends at least in part on the received input. In the first embodiment, the system 10 can be implemented using a multi-tasking operating system such that the system 10 is operable to process multiple inputs simultaneously or apparently simultaneously rather than sequentially, for example. Exemplary inputs that can be processed by the system 10 and processing thereof are described herein below with reference to
Referring to
Block 64 directs the processor 14 to determine whether the communications device identity matches a stored identity, which in the first embodiment may be stored in the database 18.
If no match is found, block 66 directs the processor 14 to initialize a user account for the new user. Block 66 may be executed in a manner identical, similar or analogous to that of block 36 (
If a match between the communications device identity and a stored communications device identity is found, then block 68 directs the processor 14 to add a new information feed associated with the appropriate information publisher to the database 18 records associated with the communications device. Adding a new information feed may involve storing a information feed source identifier, such as a link or pointer to the information publisher or to content objects of the new information feed, storing content objects currently making up the new information feed, or any combination thereof, for example.
Block 70 directs the processor 14 to alert the user that the new information feed has been added. Alerting the user may involve transmitting a communication to the communications device, and such communication may include an invitation to receive the new information feed. Additionally or alternatively, alerting the user may involve transmitting the passcode previously generated for the mobile telephone 30 (
Block 70 is optionally executed in some embodiments. In the first embodiment, the system 10 is operable to receive user input from the user indicating whether the user would like to be alerted each time a new information feed has been added. If the user has indicated that the system 10 should provide such alert, then block 70 is executed. If the user has indicated that the system 10 should not provide such alert, then the processor 14 is directed to return to the method 34 (
After block 70 has been executed, the processor 14 is directed to return to the method 34 of
Referring to
Block 76 directs the processor 14 to determine whether the passcode received by block 74 matches a stored passcode. In some embodiments, the system 10 is also operable to determine whether the received passcode matches the stored passcode associated with the mobile telephone number of the mobile telephone 30 (
If no match is found, or if an improper match is found, by block 76 then the processor 14 is directed to block 78 which directs the processor 14 to perform error processing. Such error processing may include verifying the contents of the database 18, ignoring the received passcode, attempting to communicate with the mobile telephone 30 (
If a match between the received passcode and a stored passcode is found, then the processor 14 is directed to execute block 80. Additionally or alternatively, block 80 may be executed only if the received passcode matches the stored passcode and the mobile telephone number of the sending mobile telephone 30 (
Block 80 directs the processor 14 to transmit to the communications device, which may be the requesting mobile telephone 30 (
In some embodiments, the system 10 is operable to transmit within or in addition to a listing of information feeds other information and data. The system is generally not limited to transmitting conventional data feeds such as RSS feeds or ATOM feeds.
In some embodiments, block 80 may also be executed immediately after initializing a new user account, without further input from the user's communications device being required. Executing block 80 immediately after initializing the user account advantageously provides to the user the listing of their personal page upon initialization of that user's account. After an account has been initialized, but before the user has initiated any activity in respect of their account, only one information feed is typically associated with the new communications device.
After block 80 has been executed, the processor 14 is directed to return to the method 34 of
Referring to
In the first embodiment, the system 10 is operable to receive an information feed identifier from the given mobile telephone 30 (
Block 86 then directs the processor 14 to retrieve one or more content objects associated with the information feed identifier. Typically, the content objects are objects of data or other information for inclusion in the information feed requested by the user of the communications device such as the given mobile telephone 30 (
Retrieving a content object associated with an information feed identifier may involve determining whether the content object is located externally to the system 10 or located within the system 10, such as being stored in the database 18. Making such determination in some embodiments involves identifying the source parameter from the information feed identifier. In some embodiments, the information feed identifier includes the source parameter, and the system 10 is operable to parse the information feed identifier to obtain the source parameter. By way of example, the system 10 may be operable to obtain the source parameter “provider.com” from the exemplary information feed identifier http://rss.servername.com/feedname.provider.com/ by parsing the exemplary information feed identifier. Additionally or alternatively, the database 18 may have stored therein a table, associated records or other structured data means to enable the processor 14 to obtain an associated source parameter from a given information feed identifier. By way of example, the system 10 may be operable to obtain the source parameter “provider.com” from the exemplary information feed identifier http://p1.servername.com/feedname by parsing the exemplary information feed identifier to obtain the portion “p1” and mapping the portion “p1” to the source parameter “provider.com”. In general, the system 10 may be operable to map one or more portions of an information feed identifier to parameters associated with the information feed identifier, respectively, thereby advantageously enabling a user to request an information feed by invoking a shortened version of an information feed identifier.
Retrieving an external content object may involve generating an information feed URL according to requirements of the external information publisher associated with the external content object. The system 10 is preferably operable to apply different rules for different information publishers when generating information feed URLs. By way of example, an external information publisher may be identified by the source parameter “provider.com”, and the system 10 may be operable to produce the exemplary information feed URL http://feedname.provider.com/feed. For a different information publisher associated with a different source parameter, such as “provider2.com”, the system 10 may generate the information feed URL http://provider2.com/feedlist?atom.xml, for example.
The system 10 is operable in the first embodiment to retrieve content objects stored within the system 10, such as being stored in the database 18, according to internal rules of the system 10.
In some embodiments, the system 10 is operable to include in personal page listings for selection by users information feed identifiers in which the source parameter and the feed parameter portions thereof are together equivalent to the required information feed URL, thereby enabling the system 10 to advantageously determine the information feed URL by parsing it directly from the information feed identifier.
Block 88 then directs the processor 14 to select zero or more content objects for translation and translate the selected content objects. Typically, the content objects selected for translation are those not expressed in a standard feed format such as RSS or ATOM, or otherwise not in an information feed output format of the system 10. The system 10 is then operable to translate the selected content objects from their native format to the information feed output format of the system 10, which may be a standard feed format such as RSS for example. In the case where all retrieved content objects are already in the information feed output format of the system 10, then typically zero content objects will be selected and block 88 will be executed without performing any translation.
Block 90 then directs the processor 14 to combine the one or more retrieved and possibly translated content objects to generate a produced information feed. The system 10 is operable to combine the content objects in any desired order, including in chronological order by time stamp associated with each content object, for example. Additionally or alternatively, the system 10 may be operable to combine the content objects in accordance with a user preference. In some embodiments, the system 10 is operable to stored the produced information feed in the database 18 for later retrieval.
Block 92 then directs the processor 14 to transmit the produced information feed to the communications device such as the given mobile telephone 30 (
After block 92 has been executed, the processor 14 is directed to return to the method 34 of
Referring to
Block 98 then directs the processor 14 to retrieve the updated content object from the information publisher. Block 98 and block 86 (
Block 100 then directs the processor 14 to translate the updated content object. Block 100 is optionally executed in some embodiments and may be executed without performing any translations. In the first embodiment, the system 10 is operable to select zero or more content objects among the one or more updated content objects retrieved by block 98, and translate the selected content objects. Block 100 may be implemented in a manner identical, similar, analogous or different to that of block 88 (
Block 102 then directs the processor 14 to combine the updated content object with zero or more content objects associated with the same information feed to produce an updated information feed. Block 102 and block 90 (
In some embodiments, the system 10 is operable to perform each of steps 98, 100 and 102 immediately after receiving the communication of block 96.
Additionally or alternatively, the system 10 may be operable to delay executing such blocks, including delaying the execution of block 102, delaying the execution of blocks 100 and 102, or delaying the execution of blocks 98, 100 and 102, and execute such blocks at a later delayed time, including after a request for an associated information feed has been received from a communications device, for example.
Block 104 then directs the processor 14 to transmit the updated information feed to the communications device such as the given mobile telephone 30 (
After block 104 has been executed, the processor 14 is directed to return to the method 34 of
While embodiments of the invention have been described and illustrated, such embodiments should be considered illustrative of the invention only. The invention may include variants not described or illustrated herein in detail. For example, the system 10 may be operable to inject content objects or other information, such as advertisements or other promotional material, not obtained from an information publisher, not requested by a user, or neither obtained from an information publisher nor requested by a user, into an information feed for delivery to a communications device. Thus, the embodiments described and illustrated herein should not be considered to limit the invention as construed in accordance with the accompanying claims.
This application claims priority to provisional application 60/916,292, filed May 6, 2007, and which is incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
60916292 | May 2007 | US |