The present invention relates to client-server technology in general, and in particular to subscription-based dynamic content update, such as of web portals.
The Internet-based World Wide Web has evolved from a distributed file system in which users could request delivery of already-generated static documents, to a system in which dynamic and personalized content is generated in real time and served to users. One area of increasing popularity where this trend is evident is in content frameworks such as those commonly referred to as “portals.” A portal is typically designed to serve as a gateway, or focal point, through which users access information and applications from many different sources. A portal web page typically includes multiple “portlets” which are specialized content areas that occupy small defined windows within the portal page. For example, one portlet might contain a travel itinerary, while another portlet contains sports scores. The content, appearance, and position of a portlet may be personalized for each particular user.
While a portal page and the portlets it contains may be dynamically generated in response to a user accessing the portal, once the user receives the portal page the information it contains is not typically updated automatically. Thus, for example, a user who views a portal page and wishes to know after several minutes if the sports scores he is viewing have changed, must manually reload the portal page in order to get the updated information.
While some portals automatically refresh the portal page periodically, this approach has several drawbacks. These include putting a heavy load on the portal server which must repeatedly perform data retrieval and rendering for each portlet, and disrupting the user's viewing experience as the whole portal page keeps refreshing while the user is watching it, even if no content has changed.
Some portals are designed such that their portal pages cause the user's client computer to periodically poll the portal server in order to check for updates, with the client requesting an updated version of the portal page only when new information is available. This technique is effective when the test for the presence of new information is simple. For example, in a public auction the polling might request the time of the latest bid for a certain item currently displayed at the client and then compare the polled time with the time of the displayed bid. However, this technique has several drawbacks when applied to a portal environment, since the content of the portlet is often the result of a complex query that is customized for the user. Thus polling would require performing a user-customized query for each portlet, placing a heavy burden on the portal server. Furthermore, there is no simple or standard way to compare the results of a query to existing portlet content in order to determine that the content has changed.
An improved approach for updating web page content, and particularly user-customized portlet content, would therefore be advantageous.
The present invention provides an improved approach for updating web page content, such as portlet content, whereby a publish/subscribe mechanism is used to identify content updates and provide notifications of such updates to a server. A web-page based monitor at the client periodically polls or otherwise monitors the server for content update notifications and automatically retrieves content updates which are then displayed within the web page. Thus, a web page is only updated if its underlying content has changed, the server does not need to perform complex user-customized queries in response to client polling, and the user does not need to manually reload the web page.
In one aspect of the present invention a subscription-based dynamic content update system is provided including a content update sub-system including a session manager operative to associate a web page currently active at a client and having at least one specialized content area with a subscription for content therefor, a subscription manager operative to create the subscription on a publish/subscribe server, an event buffer operative to store a content update received from the publish/subscribe server in response to a publication received from a content provider and in connection with the subscription, and a monitor operative to receive the content update from the content update sub-system and provide the content update for updating the specialized content area.
In another aspect of the present invention the system further includes a server operative to host a web site including at least one software component for dynamically generating the specialized content area of the web page, and provide the web page for display on a client computer.
In another aspect of the present invention the server is a portal server and where the web site is a portal.
In another aspect of the present invention the software component is a portlet.
In another aspect of the present invention the monitor maintains a persistent connection with the content update sub-system through which the monitor receives the content update.
In another aspect of the present invention the monitor periodically polls the content update sub-system for the existence of the content update.
In another aspect of the present invention a method for subscription-based dynamic content updating is provided, the method including associating a web page currently active at a client and having at least one specialized content area with a subscription for content therefor, receiving a content update from a content provider in connection with the subscription, and providing the content update for updating the specialized content area.
In another aspect of the present invention the method further includes creating the subscription on a publish/subscribe server, and storing the content update received from the publish/subscribe server in response to a publication received from the content provider and in connection with the subscription.
In another aspect of the present invention the method further includes dynamically generating the web page including the specialized content area, and providing the web page and the monitor to a client computer.
In another aspect of the present invention a computer program is provided embodied on a computer-readable medium, the computer program including a first code segment operative to associate a web page currently active at a client and having at least one specialized content area with a subscription for content therefor, a second code segment operative to receive a content update from a content provider in connection with the subscription, and a third code segment operative to provide the content update for updating the specialized content area.
In another aspect of the present invention the computer program further includes a fourth code segment operative to create the subscription on a publish/subscribe server, and a fifth code segment operative to store the content update received from the publish/subscribe server in response to a publication received from the content provider and in connection with the subscription.
The present invention will be understood and appreciated more fully from the following detailed description taken in conjunction with the appended drawings in which:
Reference is now made to
The subscription is preferably defined such that it identifies any change to the source of the content that is displayed by the user-customized portlet and that would cause the portlet to display different content if it were refreshed. For example, a user who is interested in financial news relating to IBM may access a portal web page that includes a user-customized portlet that displays such news. A subscription for financial news relating to IBM would then be established for the user-customized portlet. When a new news item that matches the subscription criteria is published it is sent to the user as a content update and the portlet is refreshed, causing the updated content to be displayed.
A content update may be represented in a text format that the portlet can parse, and from which the portlet can extract information for refreshing the content. For example, the content update may be in Extensible Markup Language (XML) format that may include hypertext links, such as to a new news item. Specifically, the Rich Site Summary (RSS) format of XML may be used for representing news headlines, including a news header, a publication time, and a link to the news item. The portlet may be configured to parse the RSS message using conventional techniques, extract information for display, and use Dynamic Hypertext Markup Language (DHTML) to add the new item to its current display of latest news.
Reference is now made to
It is appreciated that one or more of the steps of any of the methods described herein may be omitted or carried out in a different order than that shown, without departing from the true spirit and scope of the invention.
While the methods and apparatus disclosed herein may or may not have been described with reference to specific computer hardware or software, it is appreciated that the methods and apparatus described herein may be readily implemented in computer hardware or software using conventional techniques. Thus, for example, client-side components described hereinabove may be implemented using the Extensible Markup Language (XML), Hypertext Markup Language (HTML), JavaScript™, Java Applets, ActiveX™, or any combination thereof.
While the present invention has been described with reference to one or more specific embodiments, the description is intended to be illustrative of the invention as a whole and is not to be construed as limiting the invention to the embodiments shown. It is appreciated that various modifications may occur to those skilled in the art that, while not specifically shown herein, are nevertheless within the true spirit and scope of the invention.