Abstract:
The invention provides a method for flexibly, safely, robustly, and efficiently serving user interface pages composed of foreign content supplied by a third-party as well as local content supplied by the first party by allowing the cobrander to serve cobranded page templates. The cobrandee server retrieves the cobranded page templates from cobrander server and inserts the cobrandee contents into the cobranded page templates to generate cobranded Web content pages.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
       [0001]    This application is a Continuation of U.S. patent application Ser. No. 10/358,762 filed 4 Feb. 2003, which is incorporated by reference. 
     
    
     BACKGROUND OF THE INVENTION 
       [0002]    1. Technical Field 
         [0003]    This invention relates generally to generation of Internet content. More particularly, the invention relates to a method for flexibly, safely, robustly, and efficiently serving user interface pages composed of foreign content supplied by a third-party as well as local content supplied by a first party. 
         [0004]    2. Description of the Prior Art 
         [0005]    Presently, the Internet has established itself a main force of information communication and the world-wide Web has added new roles besides its originate purpose of sharing information. One of the new roles is to carry e-commerce, where commercial transactions are performed electronically through the world-wide Web over the Internet. The Web contents have also evolved from simple static Web pages written in Hyper Text Markup Language (HTML) to dynamically generated Web pages via Web applications. Conducting e-commerce over the Web is enabled by the Web applications that allow end users to interact with the server that hosts the Web applications. Forms are often inserted to HTML pages to capture the input requests of the end user, and a server site application processes the requests, generates responses and returns responses, again in the format of HTML, to the end user. 
         [0006]    However, the dynamic contents often require special development team to generate and maintain. Depending on the complexity of the content, it could also take quite long time to make the dynamic content available to the on-line community. Sometime it may be convenient and financially plausible to use Web contents and applications developed. As the requirement grows, more organizations are providing dynamic contents that other organizations can share and present to their own users. These dynamic contents may provide essential features such as user registration and authentication, or provide additional contents to be added to other organizations&#39; own Web contents. These dynamic contents are often required be cobrandable, i.e. it should allow them to be configured to carry the logos or other brand content of parties which use them to present an impression of proprietary content to their own user. 
         [0007]    The provider of the cobrandable dynamic Web contents is herein called a cobrandee and the party that uses the cobrandee&#39;s Web contents is herein called a cobrander. The Web content page that contains both the cobrandee&#39;s contents and the cobrander&#39;s contents is herein called a cobranded Web content page. The cobrander&#39;s contents are herein all called cobranding contents. 
         [0008]    When serving cobranded Web content pages, the provider of the cobrandable content provides the primary content, such as a news story, a network login form, etc. and other organization provides secondary cobranding content, such as a brand image and brand-specific Web site navigation elements. 
         [0009]    The usual method for implementing cobranded pages is for the cobrandable-content-offering organization, the cobrandee, to define the overall page structure and layout, including predefining specific page locations into which categories of cobranding content are to be inserted. For example, the cobrandee may predefine a fixed-size spot for a cobrand image and another for some cobranding messaging. Then the cobranding organization, i.e. the cobrander, provides the contents for these cobranding locations. However, this approach is often unattractive to the cobrander because it typically would like to have full control over the page layout and structure. 
         [0010]    What is desired is a technique for flexible, safe, robust, and efficient generation and serving of cobranded Web content pages. The technique should enable the cobrander to control the overall page structure and layout, provide context-sensitive cobrander contents, and control where the cobrandee&#39;s contents appears in the cobranded Web content pages. At the same time, the technique should enable the cobrandee to inspect the cobrander&#39;s contents and reject them if they violate the cobrandee&#39;s rules for allowable content, efficiently and robustly generate the completed cobranded Web content pages, and deliver the completed page to the end user. 
       SUMMARY OF THE INVENTION 
       [0011]    This invention addresses the foregoing and other shortcomings of conventional methods for implementing cobranded pages by allowing the cobrander to serve cobranded page templates. The cobrandee server retrieves the cobranded page templates from cobrander server and inserts the cobrandee contents to the cobranded page templates to generate cobranded Web content pages. 
         [0012]    In one embodiment, it is disclosed a system for generating cobranded Web content pages. The system comprises a cobrandee server which provides cobrandable cobrandee contents; and a cobrander server which provides cobranding cobrander contents; wherein the cobrander server controls the overall page structure and layout of the cobranded Web content pages. 
         [0013]    In another embodiment, a method is disclosed for providing cobranded Web content pages to an end user. The method comprises the steps of:
       (1) the end user requesting a cobranded Web content page from a cobrandee server which provides cobrandable cobrandee contents;   (2) the cobrandee server requesting a cobranded page template from a cobrander server which provides cobranding cobrander contents;   (3) the cobrander server generating the cobranded page template and returning the cobranded page template to the cobrandee server;   (4) the cobrandee server receiving the cobranded page template and checking that the cobranded page template doesn&#39;t violate any of a plurality of rules for allowable content;   (5) the cobrandee server inserting the cobrandable contents into the cobranded page template to generate the cobranded Web content page; and   (6) the cobrandee server returning the cobranded Web content page to the end user.       
 
         [0020]    In another embodiment, a method is disclosed for providing cobranded Web content pages to an end user. In this embodiment, the cobranded page template retrieved from the cobrander server may be store in a page template cache. 
         [0021]    In another embodiment, a system is disclosed for generating cobranded Web content pages. The system comprises:
       a cobrandee server which provides cobrandable cobrandee contents; and   a cobrander server which provides cobranding cobrander contents;
 
wherein the cobrandee further comprising:
   a retrieving module to retrieve a cobranded page template from the cobrander server;   a validating module to check that the cobranded page template doesn&#39;t violate any of a plurality of rules for allowable content; and   a generating means to generate the cobranded Web content page by inserting the cobrandable contents to the cobranded page template;
 
and wherein the cobrander server further comprising a template generating module to generate the cobranded page template.
       
 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS  
         [0027]      FIG. 1  is a simplified diagrammatic view of a system for generating cobranded Web content pages according to the invention; 
           [0028]      FIG. 2  is a simplified diagrammatic view of a method for generating cobranded Web content pages according to the invention; 
           [0029]      FIG. 3  is a simplified diagrammatic view of a method for generating cobranded Web content pages according to the invention; 
           [0030]      FIG. 4  is a simplified diagrammatic view of detailed sub-steps of the method shown in  FIG. 3 ; 
           [0031]      FIG. 5  is a simplified view of a web page served by the cobrander server and displaying to the end user through the web browsing device; 
           [0032]      FIG. 6  is a simplified view of a cobranded Web content page generated by the cobrandee server using a retrieved cobranded page template from the cobrander server according to one embodiment of the invention; and 
           [0033]      FIG. 7  is a simplified view of a cobranded Web content page generated by the cobrandee server using a default cobrander template according to one embodiment of the invention. 
       
    
    
     DETAILED DESCRIPTION OF THE INVENTION  
       [0034]    Turning now to the drawings,  FIG. 1  is a simplified diagrammatic view of a system  100  for generating cobranded Web content pages according to one embodiment of the invention. The system primarily comprises a Web browsing device  101  which an end user uses to browsing online contents, a cobrandee server  102  which provides contents which are cobrandable, and a cobrander server which provides cobranding contents  103 . 
         [0035]    Conventionally, a user opens the Web browsing device  101  and browses to  112  a URL hosted by the cobrandee server  102 , possible navigating from a site provided by the cobrander server. Upon receiving the user&#39;s request, the cobrandee server  102  invokes a retrieving module to retrieve  114  a cobranded page template from the cobrander server  103 . The cobrander server comprises a page template generating module to generate the cobranded page template and returns  116  the cobranded page template to the cobrandee server  102 . The cobrandee server  102  then uses a validating module to check whether the cobranded page template violates any of the rules for allowable content. If the cobranded page template does not violate any of the rules for allowable content, the cobrandee server uses a generating module to generate the cobranded Web content page by inserting cobrandee&#39;s cobrandable contents to the cobranded page template and returns  118  to the Web browsing device where it is presented to the end user. 
         [0036]      FIG. 2  is a simplified diagrammatic view of a method  200  for generating cobranded Web content pages according to one embodiment of the invention. The method starts at  201 . In step  202 , the end user requests a cobranded Web content page from the cobrandee server  102 . The requests typically come when a user follows a link on a Web page which is served by the cobrander server by a navigating means in the Web browsing device  101 . After receiving the request, the cobrandee server analyzes the content of the request, such as the Web page, the user, the state of the browsing session. 
         [0037]    In step  203 , the cobrandee server requests a suitable cobrandee page template from the cobrander server while passing along the context values. The URL of the cobrandee page template has been provided to the cobrandee and available to the cobrandee server. The cobrander may also configure which contexts of the request to be passed along when the cobrandee server is requesting the cobranded page templates. 
         [0038]    In step  204 , the cobrander server processes the request from the cobrandee server and returns the cobranded page template. The cobrander server can return a cobranded page template which is special to the set of received content of request of the end user. 
         [0039]    The cobrandee server may fail to retrieve a cobranded pate template from the cobrander server  221 . This could be either because the cobrander chooses not to provide cobranded page templates at all, or because the cobrander server fails to return a cobranded Web page template. In either case, the cobrandee server uses a default page template  231 , and the flow continues to step  206 . The cobrandee provides the default page template for the cobrander as a fallback to handle these cases. The default template may be configured by cobrander to include limited cobrander contents such as the cobrander&#39;s logo, display name, and benefit statements. 
         [0040]    In step  205 , the cobrandee server receives the cobranded page template and checks that it does not violate any of the rules for allowable content. For example, one of the rules for allowable content may be that the page template does not content JavaScript code. Another rule may be that the page template should not contain the HTML tag FRAME. The cobrandee server performs the check to ensure the page security and robust generation of cobranded Web content pages. If the cobranded page template passes the check, the cobrandee server then moves on to step  206 . 
         [0041]    In step  206 , the cobrandee server inserts cobrandee contents to the cobranded page template. In one typical implementation, the cobrandee server may require the cobranded page template comprise special tags, which are used to specify locations where the cobrandee contents is to be inserted. In this implementation, the cobrandee server replaces the special tags in the cobranded page template with corresponding cobrandee contents. The cobrander may also supply configuration parameters to the cobrandee to control the visual effects of the cobrandee contents which are to be inserted into the cobranded page template. Using these configuration parameters, the cobrander is able to make sure that the cobrandee contents match the look-and-feel of the pages served by the cobrander server. If such configuration parameters have been provided and available to the cobrandee server, the cobrandee server then renders the cobrandee contents according to the configuration parameters. 
         [0042]    The returned cobranded Web page may violate any the rules for allowable content  231 . In this case, the default page template is used  223 , and the flow continues to step  207 . 
         [0043]    In step  207 , the cobrandee server returns the completed cobranded Web content page to the Web browsing device  101  where it is to be presented to the end user. The method ends at  208 . 
         [0044]      FIG. 3  is a simplified diagrammatic view of a method  300  for generating cobranded Web content pages according to another embodiment of the invention. In this embodiment, the cobrandee server  102  has a memory cache to store cobranded page templates which are received from the cobrander server. By caching the cobranded page templates, the cobrandee server only retrieves a new cobranded page template when there are no cached page templates for the context of the request of the end user, or the cached page template that matches the context of the request of end user has expired. The implementation of page template caching not only reduces page generation time so that the end user spends less time on waiting the cobranded Web content page to return, but lessens the load of the cobrander server that is responsible for generating cobranded page templates and the cobrandee server that is responsible for fetching and checking the cobranded page templates. 
         [0045]    Method  300  starts at  301 . In step  302 , the end user requests a cobranded Web content page from the cobrandee server  102 . The requests typically come when a user follows a link on a Web page which is served by the cobrander server by a navigating means in the Web browsing device  101 . After receiving the request, the cobrandee server analyzes the content of the request, such as the Web page, the user, the state of the browsing session. 
         [0046]    In step  303 , the cobrandee server obtains a suitable cobrandee page template. The cobrandee server first tries to find a cobranded page template from the page template cache and request from the cobrander server if no valid page template is found. Details of this step are described below as illustrated in  FIG. 4 . 
         [0047]    In step  304 , the cobrandee server inserts cobrandee contents to the cobranded page template. In one typical implementation, the cobrandee server may require the cobranded page template comprise special tags, which are used to specify locations where the cobrandee contents is to be inserted. In this implementation, the cobrandee server replaces the special tags in the cobranded page template with corresponding cobrandee contents. The cobrander may also supply configuration parameters to the cobrandee to control the visual effects of the cobrandee contents which are to be inserted into the cobranded page template. Using these configuration parameters, the cobrander is able to make sure that the cobrandee contents match with the look-and-feel of the pages served by the cobrander server. If such configuration parameters have been provided and available to the cobrandee server, the cobrandee server then renders the cobrandee contents according the configuration parameters. 
         [0048]    In step  305 , the cobrandee server returns the completed cobranded Web content page to the Web browsing device  101  where it is to be presented to the end user. The method ends at  306 . 
         [0049]      FIG. 4  is a simplified diagrammatic view of the detailed sub-steps of step  303  in method  300 . The flow steps at  311 . In step  312 , the cobrandee server checks whether there is a cobranded page template in the page template cache that matches the context of the request of the end user. If a cobranded page template is found, the cobrandee server also checks whether the cobranded page template is unexpired. 
         [0050]    In step  313 , a cobranded page template is found in the page template cache. The cobranded page template matches the context of the request of the end user and is unexpired. In step  314 , the cobranded page template is retrieved from the page template cache. This cobranded page template is to be used in step  304  to generate a cobranded Web content page. 
         [0051]    If no cobranded page template can be retrieved from the page template cache, the flow then continues to step  321 . In step  321 , the cobrandee server requests a suitable cobrandee page template from the cobrander server while passing along the context values. The URL of the cobrandee page template has been provided to the cobrandee and available to the cobrandee server. The cobrander may also configure which contexts of the request to be passed along when the cobrandee server is requesting the cobranded page templates. 
         [0052]    In step  322 , the cobrander server processes the request from the cobrandee server and returns the cobranded page template. The cobrander server can return a cobranded page template which is special to the content of the request of the end user. 
         [0053]    Again, the cobrandee server may fail to retrieve a cobranded pate template from the cobrander server  341 . This could be either because the cobrander chooses not to provide cobranded page templates at all, or because the cobrander server fails to return a cobranded Web page template. In either case, the cobrandee server uses the default page template  343 , and the flow continues to step  324 . 
         [0054]    In step  323 , the cobrandee server receives the cobranded page template and checks that it does not violate any of the rules for allowable content. For example, one of the rules for allowable content may be that the page template does not content JavaScript code. Another rule may be that the page template should not contain the HTML tag FRAME. The cobrandee server performs the check to ensure the page security and robust generation of cobranded Web content pages. If the cobranded page template passes the check, the cobrandee server then moves on to step  324 . 
         [0055]    The returned cobranded Web page may violate any the rules for allowable content  351 . In this case, the default page template is used  343 , and the flow continues to step  324 . 
         [0056]    In step  324 , the cobrandee server evaluates heuristics to determine whether the newly retrieved cobranded page template is to be stored in the page template cache. If so, store the cobranded page template in the page template cache. The newly retrieved cobranded page template is also used in step  314  to generate a cobranded Web content page. The flow ends at  315 . 
         [0057]    The cobrander may provide a timeout value configuration parameter to control when cobranded page template stored in the page template cache expires. If such a configuration parameter is not provided, then a default timeout value is used when determine whether a cached cobranded page template is expired. 
         [0058]      FIG. 5  is a simplified view of a web page served by the cobrander server and displaying to the end user through the web browsing device  101 . The web page contains a link  501 , as shown in the rectangle in dash lines, to a cobranded web content page served cobrandee server. After the user clicks on the link, a cobranded web content page is generated by the cobrandee server and returned. 
         [0059]      FIG. 6  is a simplified view of a cobranded Web content page generated by the cobrandee server  102  using a retrieved cobranded page template from the cobrander server  103  according to one embodiment of the invention. The cobranded Web content page contains cobrandee contents  601 , as shown in the rectangle in dash lines, and cobrander contents such as cobrander&#39;s logo image  611 , cobrander&#39;s benefit statements  612  and cobrander&#39;s navigation links  613 . Because the cobrander contents are generated in the cobranded page template served by the cobrander server, the cobrander enjoys the flexibility to change the cobrander contents, such as  611 ,  612 ,  613 , in the cobrander Web content pages. The cobrander can also control layout of the cobrander Web content page, change the location of the cobrandee contents  601  on the cobranded Web content page. Further, by supplier configuration parameters to the cobrandee server, the cobrander will be able to control the visual effects of the cobrandee contents  601  so that cobrandee contents may be rendered to match the visual effects of the cobrander contents. 
         [0060]    As described above, a default cobrander template is also provided for the cobrander by the cobrandee. The default template will be used as a fallback template in case that the cobrandee server fails to retrieve a cobranded page template from the cobrander server of the retrieved cobranded page template violates any of the rules for allowable contents. 
         [0061]      FIG. 7  is a simplified view of a cobranded Web content page generated by the cobrandee server  102  using a default cobrander template according to one embodiment of the invention. The cobranded Web content page contains cobrandee contents  701 , as shown in the rectangle in dash lines, and cobrander contents such as cobrander&#39;s logo image  711  and cobrander&#39;s benefit statements  712 . 
         [0062]    Therefore, this invention, as illustrated in above embodiments, provides a technique for flexible, safe, robust, and efficient generation and serving of multi-source world-wide Web content pages such as cobranded pages. The technique presented herein greatly improves the degree of page control for the cobrander, while preserving the cobrandee&#39;s ability to server the pages to the end user in a secure and efficient way. In particular, the method enables the cobrander to:
       control the overall page structure and layout;   provide context-sensitive cobrander content in the page;   control where the cobrandee&#39;s content appears in the page;   control aspects of the visual rendering of the cobrandee&#39;s content, such as foreground and background colors; and   influence the duration for which the cobrander-supplied page templates, which comprise essentially the page minus the cobrander&#39;s content, are cached.       
 
         [0068]    At the same time, it enables the cobrandee to:
       inspect the cobrander&#39;s content and reject it if it violates the cobrandee&#39;s rules for what is allowable, such as Javascript content in an HTML page;   efficiently and robustly generate the completed cobranded pages; and   deliver the completed page to the end user.       
 
         [0072]    From the foregoing, it can be seen that a system designed in accordance with the this invention provides a versatile, efficient, and personalized Internet interface for specialized applications, particularly with respect to automating certain interactions which ordinarily must be completed manually. The preferred embodiments disclosed herein have been described and illustrated by way of example only, and not by way of limitation. Other modifications and variations to the invention will be apparent to those skilled in the art from the foregoing detailed disclosure. While only certain embodiments of the invention have been specifically described herein, it will be apparent that numerous modifications may be made thereto without departing from the spirit and scope of the invention. 
         [0073]    Accordingly, the invention should only be limited by the Claims included below.