Abstract:
Embodiments of the present invention address deficiencies of the art in respect to portlet content refreshing and provide a novel and non-obvious method, system and apparatus for independently refreshing portlet content in a portal view. In an embodiment of the invention, a system for refreshing portlet content in a portal view can include a portal server configured to render a portal page, a portlet aggregator configured to provide portlet markup for different portlets in different refresh controllers having independently refreshable portions, and a refresh servlet coupled to the portlet aggregator that includes programming to configure the portal page with the different refresh controllers.

Description:
BACKGROUND OF THE INVENTION  
       [0001]     1. Field of the Invention  
         [0002]     The present invention relates to the field of portal environment management and more particularly to refreshing portlet content within a portal view.  
         [0003]     2. Description of the Related Art  
         [0004]     Distributing content about large computer communications networks is not without its challenges. In particular, the quantity of content available for distribution in a computer communications network often varies proportionally to the size of the computer communications network. At the extreme, the Internet hosts a vast quantity of content not easily accessible by most end-users. Portals represent a sensible solution to the problem of aggregating content through a channel paradigm in a single, network-addressable location. In consequence, portals have become the rage in content distribution.  
         [0005]     Portlets are the visible active components included as part of portal pages. Similar to the graphical windows paradigm of windowing operating systems, each portlet in a portal occupies a portion of the portal page through which the portlet can display associated content from a portlet channel. Portlets are known to include both simple applications such as an electronic mail client, and also more complex applications such as forecasting output from a customer relationship management system. The prototypical portlet can be implemented as server-side scripts executed through a portal server.  
         [0006]     From the end-user perspective, a portlet is a content channel or application to which the end-user can subscribe. By comparison, from the perspective of the content provider, a portlet is a means through which content can be distributed in a personalized manner to a subscribing end-user. Finally, from the point of view of the portal, a portlet merely is a component which can be rendered within the portal page. In any case, by providing one or more individually selectable and configurable portlets in a portal, portal providers can distribute content and applications through a unified interface in a personalized manner according to the preferences of the end-user.  
         [0007]     Portal servers are computer programs which facilitate the distribution of portal based Web sites on the public Internet or a private intranet. Importantly, it will be recognized by one of ordinary skill in the art that the signature characteristic of all conventional portal servers can include the aggregation of content from several portlet applications within a single distributable page in a uniform manner. To that end, each portlet application within the portal page can be represented by a portlet user interface distributed by the portal server to requesting client computing devices.  
         [0008]     Portals display an aggregation of markup that can, and frequently does, originate from multiple content sources. The performance and availability of any one of these sources can have a profound effect upon the end user experience with a portal, since the entire portal display must be aggregated prior to rendering the portal in a client viewer. Specifically, aggregation complicates the notion of refresh, and the Web based interface of a portal can compound matters further. In this regard, portlets running in the portal view that require a timely refresh cannot do so without interrupting the display of neighboring portlets. This type of interruption can be distracting and a source of frustration for the end user.  
       BRIEF SUMMARY OF THE INVENTION  
       [0009]     Embodiments of the present invention address deficiencies of the art in respect to portlet content refreshing and provide a novel and non-obvious method, system and apparatus for independently refreshing portlet content in a portal view. In an embodiment of the invention, a system for refreshing portlet content in a portal view can include a portal server configured to render a portal page, a portlet aggregator configured to provide portlet markup for different portlets in different refresh controllers having independently refreshable portions, and a refresh servlet coupled to the portlet aggregator that includes programming to configure the portal page with the different refresh controllers.  
         [0010]     In one aspect of the invention, the different refresh controllers can be linked to the portal page through corresponding hidden frames disposed in the portal page. Moreover, each of the different refresh controllers can include a script programmed to write contained portlet markup to an element in the portal page responsive to a triggering event, such as an on load event. Finally, the portlet markup for the different portlets each can include at least one refresh tag. The refresh tag can include an element type, an element identifier, an address for refreshable content for an element in the portlet markup associated with the element identifier, and a refresh rate. Also, the portlet markup for the different portlets each can include one or more refresh tags for different portions of the portlet markup.  
         [0011]     In another embodiment can provide for a method for refreshing portlet content in a portal view. The method can include receiving a call from a refresh tag in portlet markup for a portlet among portlets in the portal view. Responsive to the receipt of the call, a refresh controller can be generated for the portlet markup. A script can be embedded in the refresh controller, the script including code enabled to provide content in the refresh controller to the portal page. The refresh controller can be linked to a hidden frame in the portal page. Finally, the hidden frame can be provided to an aggregator for assembly into the portal page.  
         [0012]     Notably, the method can include extracting a refresh rate from the call from the refresh tag. In this regard, the embedding step can include enabling the code to periodically refresh the content in the refresh controller at a rate consistent with the refresh rate. Also, the extracting step further can include extracting a push type and a push identifier for a portion of the portlet markup from the call from the refresh tag. In this case, the embedding step can include selecting the script for embedding in the refresh controller according to a template corresponding to the push type. Moreover, the embedding step further can include enabling the code to periodically refresh content for the portion in the refresh controller indicated by the push identifier at a rate consistent with the refresh rate.  
         [0013]     Additional aspects of the invention will be set forth in part in the description which follows, and in part will be obvious from the description, or may be learned by practice of the invention. The aspects of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the appended claims. It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the invention, as claimed. 
     
    
     BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS  
       [0014]     The accompanying drawings, which are incorporated in and constitute part of this specification, illustrate embodiments of the invention and together with the description, serve to explain the principles of the invention. The embodiments illustrated herein are presently preferred, it being understood, however, that the invention is not limited to the precise arrangements and instrumentalities shown, wherein:  
         [0015]      FIG. 1  is a schematic illustration of a portal environment configured to accommodate the independent refreshing of portlet content in a portal view; and,  
         [0016]      FIG. 2  is a flow chart illustrating a method for independently refreshing portlet content in a portal view. 
     
    
     DETAILED DESCRIPTION OF THE INVENTION  
       [0017]     Embodiments of the present invention provide a method, system and computer program product for independently refreshing portlet content in a portal view. In an embodiment of the invention, a refresh tags specifying different refresh intervals can be included in correspondingly different portlet content. The refresh tags can be separately processed in a refresh servlet to produce separate refresh controller documents, each linked to a hidden frame in the portal view, and each including a script controlling the refreshing of corresponding portlet content. Subsequently, an aggregator for the portal view can include the portlet content in each hidden frame in the portal view, and the aggregator can periodically refresh the different portlet content in the portal view independently accordingly to the specified, different intervals. In this way, different elements of the portal view can be refreshed at different intervals without interfering with the display of neighboring elements in the portal view.  
         [0018]     In more particular illustration,  FIG. 1  is a schematic illustration of a portal server system which has been configured to independently refresh portlet content in a portal view. The portal server system can include a portal page  135  communicatively coupled to a selection of portlet applications  115 A,  115 B,  115   n  through a portal server  130 . Each portlet application  115 A,  115 B,  115   n  can produce a view based upon portlet data  120 A,  120 B,  120   n  in the form of portlet markup  125  through corresponding rendering logic  110 A,  110 B,  110   n.  Notably, the rendering logic  110 A,  110 B,  110   n  can be active markup such as a JSP, in which logical scriptlets can be embedded to produce specific markup language tags.  
         [0019]     A portlet aggregator  105  can be coupled to each portlet application  115 A,  115 B,  115   n  to receive the portlet markup  125  and to aggregate the portlet markup  125  into view in the portal page  135 . By aggregation, it is meant that the individual markup language blocks produced by each portlet  115 A,  115 B,  115   n  can be combined into a single cohesive markup language document configured for distribution to and use within a conventional content browser. In this regard, the portal page  135  can be disposed in the portal server  130  from which the portal  135  can be accessed by client content browsing devices  140  over a computer communications network  160  such as a local computer communications network, for instance a private intranet, or a global computer communications network, for instance the public Internet.  
         [0020]     In accordance with an embodiment of the present invention, a refresh tag  170  can be embedded in portlet markup  125  to indicate that at least a portion of the content of portlet markup  125  is to be refreshed at a specified interval. In this regard, the refresh tag  170  can be incorporated in the portlet markup  125  multiple times to achieve multiple independent refreshing of different elements within the portlet markup  125  of a portlet. The refresh tag  170  can include several parameters helpful in controlling the independent refreshing of a specified portion of the portlet markup  125 .  
         [0021]     For example, the parameters can include a push type indicating the type of element in the portlet markup  125  which is to be refreshed and a push identifier for uniquely identifying the element to be refreshed. Push types can include a popup window of the portlet markup  125 , a field within a form in the portlet markup  125 , and a document indicating the visual markup elements of the portlet markup  125 , to name only a few. The parameters also can include a network or file system address for the source of the content to be refreshed in the uniquely identified element in the portlet markup  125 . Finally, the refresh tag  170  can include a refresh rate indicating how often the content for the uniquely identified element in the portlet markup  125  is to be refreshed. The refresh rate can include a specified integer rate, or a formulaically derived rate.  
         [0022]     A refresh servlet  160  can be coupled to the aggregator  105 . The refresh tag  170  can call the refresh servlet  160  to write a corresponding refresh controller  150  utilizing parameters provided by the refresh tag  170 . The refresh controller  150  can be a document containing visual markup such as hypertext markup language (HTML). The refresh controller  150  can include a hidden frame, such as a hidden inline frame. The inline frame can reference the network or file system address for the source of the content to be refreshed in the uniquely identified element in the portlet markup  125  as noted by the refresh tag  170 .  
         [0023]     The refresh controller  150  also can include a script  155  to write the portlet markup  125  of the refresh controller  150  to a designated element in the portal page  135 . The script  155  can be templated and selected according to the push type indicated by the refresh tag  170  and can be executed when an “on load” triggering event occurs in the refresh controller  150 . Finally, the aggregator  105  can configure the portal page  135  with hidden frames  165 , each hidden frame referring to one of the refresh controllers  150 . To that end, the script  155  can reference a corresponding “span” in a corresponding refresh controller  150  so as to cause the refreshing of the content in the designated element in the portal page  135  with the refreshed content incorporated within the hidden frame  165 .  
         [0024]     Optionally, one refresh controller  150  can be created for the entire portal page  135  where the refresh controller  150  contains all of the scripts  155  and hidden frames fore each refreshed element in all portlets  115 A,  115 B,  115   n  on the portal page  135 . Alternatively, one refresh controller  150  can be created for each portlet  115 A,  115 B,  115   n,  where each refresh controller  150  contains all of the scripts  155  and all of the hidden frames for aech refreshed element within the portlet  115 A,  115 B,  115   n.  Finally, as yet another alternative, one refresh controller  150  can be created for each refreshed element in a portlet  115 A,  115 B,  115   n  in a portal page  135 .  
         [0025]     In consequence of the foregoing arrangement, each of the portlets  115 A,  115 B,  115 C can provide its corresponding markup to a refresh controller  150  rather than a single document (the portal page  135 , itself). Further, each of the refresh controllers  150 , can write its respective content—when that content is ready to render according the refresh rate specified by a corresponding refresh tag  170 —to an element of the portal page  135 . Since no one of the portlets  115 A,  115 B,  115 C need wait for any other of the portlets  115 A,  115 B,  115 C to construct markup, the markup stream for the portal page  135  can be displayed immediately and each of the portlets  115 A,  115 B,  115 C can enjoy independent refreshing in the portal view  135 .  
         [0026]     In further illustration of the operation of the refresh servlet  160  of the portal system of  FIG. 1 ,  FIG. 2  is a flow chart illustrating a method for independently refreshing portlet content in a portal view. Beginning in block  210 , a refresh call can be received for refreshing content in a portlet. In block  220 , parameters for the refresh call can be extracted. Specifically, a push type, push identifier, content source and refresh rate can be extracted for the refresh tag. Subsequently, in block  230  a refresh controller can be generated for at least a portion of the portlet markup as designated by the push identifier and push type. To that end, the designated portion of the portlet markup can range from a mere field in a form in the portlet markup, to an entire HTML document in the portlet markup.  
         [0027]     In any case, in block  240 , a refresh script can be included in the refresh controller, which refresh script can cause the refreshing of the content for the designated portion of the portlet market at the specified refresh rate. In decision block  250 , it can be determined if additional refresh calls remain to be processed. If so, the process can continue through block  260  in which a next refresh tag can be selected for processing and the process can repeat in blocks  230  through  260 . When no further refresh calls remain to be processed in the portlet markup, in block  270  the portlet markup can be passed to the aggegrator for aggregation into the portal view.  
         [0028]     Embodiments of the invention can take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment containing both hardware and software elements. In a preferred embodiment, the invention is implemented in software, which includes but is not limited to firmware, resident software, microc ode, and the like. Furthermore, the invention can take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system.  
         [0029]     For the purposes of this description, a computer-usable or computer readable medium can be any apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. The medium can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium. Examples of a computer-readable medium include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk and an optical disk. Current examples of optical disks include compact disk—read only memory (CD-ROM), compact disk—read/write (CD-R/W) and DVD.  
         [0030]     A data processing system suitable for storing and/or executing program code will include at least one processor coupled directly or indirectly to memory elements through a system bus. The memory elements can include local memory employed during actual execution of the program code, bulk storage, and cache memories which provide temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage during execution. Input/output or I/O devices (including but not limited to keyboards, displays, pointing devices, etc.) can be coupled to the system either directly or through intervening I/O controllers. Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modem and Ethernet cards are just a few of the currently available types of network adapters.