System and method for representation of multiple related objects within a web feed

A method and computer program product for processing a data page to be provided to one or more remote devices via a data feed. A determination is made concerning whether the data page includes two or more data objects. If the data page includes two or more data objects, a page entry for the data page is defined; and a separate object entry for at least one of the two or more data objects included within the data page is defined. The object entry is associated with the page entry.

TECHNICAL FIELD

This disclosure relates to feeds and, more particularly, to representing multi-attachments within feeds.

BACKGROUND

Web feeds are used to distribute information to subscribers and visitors of a website. Various feed formats (e.g., RSS & Atom) may be utilized to achieve the desired data distribution. Unfortunately, some feed formats are limited in the manner in which data may be distributed. For example, problems are often encountered when trying to distribute pages that include a plurality of attachments (i.e., data objects) that are related to each other in some way yet need to be dispersed throughout the feed.

Specifically, a page represented by an Atom feed may be made up of multiple feed entries within the Atom feed, wherein each feed entry within the feed represents a data object within the page (e.g., an attachment). Unfortunately, for such an Atom feed, there is no way to reconstruct the original page composition if the original page included multiple data objects (e.g., attachments, fields, and/or metadata) and such given objects were dispersed throughout the feed rather than within a single holding object.

SUMMARY OF DISCLOSURE

In a first implementation, a method includes processing a data page to be provided to one or more remote devices via a data feed. A determination is made concerning whether the data page includes two or more data objects. If the data page includes two or more data objects, a page entry for the data page is defined; and a separate object entry for at least one of the two or more data objects included within the data page is defined. The object entry is associated with the page entry.

One or more of the following features may be included. The page entry and the object entry may be provided to at least one of the one or more remote devices. Providing the page entry and the object entry to at least one of the one or more remote devices may include publishing the page entry and the object entry to at least one of the one or more remote devices. Providing the page entry and the object entry to at least one of the one or more remote devices may include enabling availability of the page entry and the object entry to at least one of the one or more remote devices.

The data feed may be an RSS feed. The data feed may be an ATOM feed. At least one of the data objects may be an attachment. At least one of the data objects may be a data field. The page entry may include a master entry ID. The object entry may include a slave entry ID that is associated with the master entry ID. The slave entry ID may include at least a portion of the master entry ID.

In another implementation, a computer program product resides on a computer readable medium that has a plurality of instructions stored on it. When executed by a processor, the instructions cause the processor to perform operations including processing a data page to be provided to one or more remote devices via a data feed. A determination is made concerning whether the data page includes two or more data objects. If the data page includes two or more data objects, a page entry for the data page is defined; and a separate object entry for at least one of the two or more data objects included within the data page is defined. The object entry is associated with the page entry.

One or more of the following features may be included. The page entry and the object entry may be provided to at least one of the one or more remote devices. Providing the page entry and the object entry to at least one of the one or more remote devices may include publishing the page entry and the object entry to at least one of the one or more remote devices. Providing the page entry and the object entry to at least one of the one or more remote devices may include enabling availability of the page entry and the object entry to at least one of the one or more remote devices.

The data feed may be an RSS feed. The data feed may be an ATOM feed. At least one of the data objects may be an attachment. At least one of the data objects may be a data field. The page entry may include a master entry ID. The object entry may include a slave entry ID that is associated with the master entry ID. The slave entry ID may include at least a portion of the master entry ID.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

Referring toFIG. 1, there is shown feed generation process10that may reside on and may be executed by server computer12, which may be connected to network14(e.g., the Internet or a local area network). Examples of server computer12may include, but are not limited to: a personal computer, a server computer, a series of server computers, a mini computer, and a mainframe computer. Server computer12may be a web server (or a series of servers) running a network operating system, examples of which may include but are not limited to: Microsoft Windows XP Server™; Novell Netware™; or Redhat Linux™, for example.

As will be discussed below in greater detail, feed generation process10may process a data page to be provided to one or more remote devices via a data feed. Feed generation process10may determine if the data page includes two or more data objects. If so, a page entry for the data page may be defined and an object entry for at least one of the data objects included within the data page may be defined, wherein the object entry is associated with the page entry.

The instruction sets and subroutines of feed generation process10, which may be stored on storage device16coupled to server computer12, may be executed by one or more processors (not shown) and one or more memory architectures (not shown) incorporated into server computer12. Storage device16may include but is not limited to: a hard disk drive; a tape drive; an optical drive; a RAID array; a random access memory (RAM); and a read-only memory (ROM).

Server computer12may execute a web server application, examples of which may include but are not limited to: Microsoft IIS™, Novell Webserver™, or Apache Webserver™, that allows for HTTP (i.e., HyperText Transfer Protocol) access to server computer12via network14. Network14may be connected to one or more secondary networks (e.g., network18), examples of which may include but are not limited to: a local area network; a wide area network; or an intranet, for example.

Server computer12may execute syndication application20, examples of which may include but are not limited to IBM Workplace Web Content Management™. Syndication application20may allow for the transferring of information via data feeds, such as RSS feeds and Atom feeds to one or more feed reading processes22,24,26,28, examples of which may include but are not limited to Google Reader™ and NewsGator™. Feed generation process10may be a stand alone application that interfaces with syndication application20or an applet/application that is executed within syndication application20.

The instruction sets and subroutines of syndication application20, which may be stored on storage device16coupled to server computer12may be executed by one or more processors (not shown) and one or more memory architectures (not shown) incorporated into server computer12.

The instruction sets and subroutines of feed reading processes22,24,26,28, which may be stored on storage devices30,32,34,36(respectively) coupled to client electronic devices38,40,42,44(respectively), may be executed by one or more processors (not shown) and one or more memory architectures (not shown) incorporated into client electronic devices38,40,42,44(respectively). Storage devices30,32,34,36may include but are not limited to: hard disk drives; tape drives; optical drives; RAID arrays; random access memories (RAM); read-only memories (ROM), compact flash (CF) storage devices, secure digital (SD) storage devices, and memory stick storage devices. Examples of client electronic devices38,40,42,44may include, but are not limited to, personal computer38, laptop computer40, personal digital assistant42, notebook computer44, a server (not shown), a data-enabled, cellular telephone (not shown), and a dedicated network device (not shown). Using feed reading processes22,24,26,28, users46,48,50,52(respectively) may access feeds provided by syndication application20.

Users46,48,50,52may access syndication application20directly through the device on which the feed reading process (e.g., feed reading processes22,24,26,28) is executed, namely client electronic devices38,40,42,44, for example. Users46,48,50,52may access syndication application20directly through network14or through secondary network18. Further, server computer12(i.e., the computer that executes syndication application20) may be connected to network14through secondary network18, as illustrated with phantom link line54.

Client electronic devices38,40,42,44may each execute an operating system, examples of which may include but are not limited to Microsoft Windows™, Microsoft Windows CE™, Redhat Linux™, or a custom operating system.

The Feed Generation Process:

For the following discussion, feed reading process22is going to be described for illustrative purposes. However, this is not intended to be a limitation of this disclosure, as other feed reading processes (e.g., feed reading processes24,26,28) may be equally utilized.

Referring also toFIGS. 2 & 3and as discussed above, feed generation process10may process100a data page (such as a TeamSpace™ page) to be provided to one or more remote devices (e.g., client electronic devices38,40,42,44) via a data feed (e.g., an RSS feed or an ATOM feed). As is known in the art, a TeamSpace may be a web-based collaborative workspace system for managing shared work processes and maintaining shared artifacts in a project that may span months/years. A TeamSpace may cover both synchronous and asynchronous cross-company team activities and may provide a seamless transition between various work modes.

Feed reading process22may allow user46to browse through various sites (e.g. websites and team spaces) so that user46may subscribe to one or more web feeds. For example, using feed reading process22, user46may browse team space100(i.e. “Tony's Team Page”). Team space100may include menu bar102that allows user46to select from a plurality of sub pages, such as “Home”, “Discussion”, “Library”, “Calendar”, “Tasks”, “Index”, “Customize”, and “Members”. Team space100may include subscription button104that allows user46to subscribe to web feed150.

As discussed above, web feeds may be used to distribute information to subscribers and visitors of a website. Accordingly, web feed150may be used to distribute information available on team space page100. For example, team space page100is shown to include three files available for download, namely: Test_Image.gif; Error_Log.txt; and Chicago_Slideshow.PPT. Accordingly, through the use of web feed150, user46may receive content distributed by e.g. team space page100, including but not limited to the three files available for download, namely: Test_Image.gif; Error_Log.txt; and Chicago_Slideshow.PPT.

While the content distributor is described above is being team space page100, this is for illustrative purposes only and is not intended to be a limitation of this disclosure, as other configurations are possible. For example, the content distributor may be a news website, a blog site, or a social networking website.

As discussed above, various feed formats (e.g., RSS & Atom) may be utilized to achieve the desired data distribution. Unfortunately, for certain feed types (e.g., Atom feeds), it is not possible to reconstruct “complex” pages (i.e., pages that include multiple data objects, such as attachments, fields, metadata, etc). Accordingly, as team space page100includes three attachments, this is a “complex” page that may be difficult to reconstruct when transmitted using various feed formats.

Accordingly and referring also toFIG. 4, when a user (e.g. user46) selects subscription button104, thus indicating that (in this particular example) user46wishes to subscribe to a web feed of team space page100, feed generation process10may process200team space page100(i.e. the page that is to be provided to the remote devices (e.g. personal computer38) via data feed150) to determine202whether team space page100includes two or more data objects. In the event that team space page100does not include multiple objects, feed generation process10may publish204a feed of the data included within team space page100. However and as discussed above, since team space page100includes a plurality of attachments, namely: Test_Image.gif106; Error_Log.txt108; and Chicago_Slideshow.PPT110, team space page100does indeed include two or more data objects.

Accordingly, upon feed generation process10determining202that team space page100includes multiple objects, feed generation process10may define206a page entry for the data page (i.e. team space page100) and may define208an object entry for each of the data objects included within team space page100(i.e. Test_Image.gif106; Error_Log.txt108; and Chicago_Slideshow.PPT110).

As is known in the art, web feeds (e.g. web feed150) may include a plurality of feed entries. Therefore, when publishing web feed150, feed generation process10may include, within web feed150, the page entry defined204for team space page100and the object entries defined206for Test_Image.gif106; Error_Log.txt108; and Chicago_Slideshow.PPT110.

For illustrative purposes, web feed150is shown to include the four above-described feed entries, namely page entry152(which corresponds to team space page100), object entry154(which corresponds to Test_Image.gif106), object entry156(which corresponds to Error_Log.txt108), and object entry158(which corresponds to Chicago_Slideshow.PPT110). When generating web feed150, feed generation process10may also include additional information160,162that may be required to e.g. define the feed type, define the beginning of the feed, and define the end of the feed).

Page entry152may define various aspects of team space page100, such as: the title of the page (“Tony's Team Page”); the publication date of the page; and the author of the page. Each of object entries154,156,158may define various aspects of the related data object, such as: the title of the data object; the publication date of the data object; and the author of the data object.

When defining208the object entries (e.g., object entries154,156,158), feed generation process10may associate each object entry defined within web feed150with the related page entry (e.g., page entry152), thus allowing web feed150to be properly processed by feed reading process22. For example, each page entry (e.g. page entry152) may include a master entry ID. Further, each object entry (e.g. object entries154,156,158) may include a slave entry ID that is associated with the master entry ID, and the slave entry ID included within each object entry may include at least a portion of the master entry ID.

For example and for illustrative purposes only, page entry152may include master ID entry164(i.e. 0F7F78B411663465852572DB00775018). Further, object entry154may include slave entry ID166(i.e. 0F7F78B411663465852572DB00775018.1); object entry156may include slave entry ID168(i.e., 0F7F78B411663465852572DB00775018.2); and object entry156may include slave entry ID170(i.e., 0F7F78B411663465852572DB00775018.3). In this example, slave entry IDs166,168,170are shown to be identical to master entry ID164with the exception that a suffix (e.g. “0.1”, “0.2”, “0.3”, respectively) was added to each of slave entry IDs166,168,170. Accordingly, the “root” portion (i.e. 0F7F78B411663465852572DB00775018) of each of slave entry IDs166,168,170is identical to that of master ID entry164(i.e. 0F7F78B411663465852572DB00775018). Accordingly, by using such a master entry ID/slave entry ID nomenclature, feed generation process10may associate each object entry (e.g., object entries154,156,158) defined within web feed150with the related page entry (e.g., page entry152).

The above-described master entry ID/slave entry ID nomenclature is for illustrative purposes only and is not intended to be a limitation of this disclosure, as other configurations are possible. For example, instead of attaching a suffix to each of slave entry IDs166,168,170, an additional line item may be inserted into each of the corresponding object entries (namely object entries154,156,158) that defines the associated page entry (namely page entry152).

Once web feed150is defined, feed generation process10and/or syndication application20may provide210web feed150(which includes page entry152and object entries154,156,158) to one or more remote devices (e.g. personal computer38, laptop computer40, personal digital assistant42, notebook computer44).

Alternatively/additionally, when providing web feed150(which includes page entry152and object entries154,156,158) to e.g. personal computer38, laptop computer40, personal digital assistant42, notebook computer44, feed generation process10and/or syndication application20may enable availability214of web feed150to e.g. personal computer38, laptop computer40, personal digital assistant42, notebook computer44. Accordingly, feed generation process10and/or syndication application20may allow users of e.g. personal computer38, laptop computer40, personal digital assistant42, notebook computer44to download/obtain a copy of web feed150(e.g. in a manner similar to that of a podcast).