Over the last several years, web portals have risen in popularity as a way of aggregating, organizing, and presenting content in a highly uniform, customizable, and personalized way. As the technologies that enable the creation and management of these web portals have evolved, it is not only information content that is being offered, but application functionality as well. With application functionality making its way to the web portal, developers face a new dilemma in adapting application functionality to the characteristics and behavior of a web portal.
A portal is a web site that generally provides content and application functionality in a way that is both useful and meaningful to an end user. It may also serve some purpose from the portal provider's perspective, whether it is a public portal trying to attract web traffic to the site or an enterprise desiring to provide a central location for employees to obtain company information.
Most portals and portal frameworks contain the concept of a “portlet.” A portlet is a window to a specific set of content within the overall context of the portal page. Many portlets support the ability to customize the information displayed within this window. From the perspective of the portal framework or platform, portlets tend to look and behave much the same as individual windows running in a MICROSOFT WINDOWS™-based operating system. Portlets may be minimized, maximized, and re-arranged around the display screen to suit the taste of the individual portal user. From the developer's perspective, a portlet is simply a piece of code that plugs into a generalized framework. Different portal frameworks implement the concept of a portlet differently. In some cases, the portlet is a collection of SUN MICROSYSTEM'S JAVA™ SERVER PAGES™ (JSP) pages. In other cases, it may be a special type of class that implements certain interfaces. Regardless of how it is implemented, the portlet is generally responsible for presenting a specific set of content that may be tailored to a user's preferences. The portal framework is responsible for handling the infrastructure services, such as providing the overall presentation, user management, security, and personalization.
In the design and implementation of portals, it is generally useful to understand that typical web applications do not necessarily map easily over to a portal paradigm, especially in applications with multi-page interaction. Therefore, when converting a typical multi-page web site into a portal, developers generally re-code the entire web site from scratch into the portal paradigm. This process takes up considerable development time and expense.
Representative embodiments of the present invention are directed to a method for managing a portal adaptation lifecycle that may include determining a construction design for an adapted portal application, determining a model for separation or presentation logic and application logic of an existing Web application to be adapted into the portal application, determining a navigation construction for the adapted portal application, selecting a level of customization to apply to the adapted portal application, and selecting an isolation model for isolating business logic from the adapted portal application.
Further representative embodiments of the present invention are directed to a method for adapting a Web application to a portal application that may include adding at least one component of the Web application to a portal platform, creating a plurality of portlets within the portal platform, wherein each of the plurality includes pages representing a view for the at least one component of the Web application, defining at least one Web flow relationship representing interactions between the at least one component of the Web application, and converting the at least one Web flow relationship into at least one event, defined within the plurality of portlets, wherein the at least one event corresponds to the interactions.
Further representative embodiments of the present invention are directed to a methodology for converting a Web application into a portal application comprising moving Web components from the Web application into a portal framework corresponding to the portal application, dividing the portal application into a plurality of portlets, wherein each of the plurality serves content of one or more of the Web applications, and providing navigation resources to the portal application.
Further representative embodiments of the present invention are directed to a system for adapting a Web application to a portal application comprising means for adding one or more Web application components to the portal application, means for generating a plurality of portlets within the portal application, wherein each of the plurality includes a view for the one or more Web application components, means for defining at least one Web flow relationship representing interactions between the one or more Web application components, and means for converting the at least one Web flow relationship into at least one interaction event, defined within the plurality of portlets, wherein the at least one interaction event corresponds to the interactions.
For a more complete understanding of the present invention, reference is now made to the following descriptions taken in conjunction with the accompanying drawing, in which:
In step 102, the developer determines the appropriate site navigation model to employ by examining the model to find the experience that the developer has designed for the user. Navigation differs in portals because a call to a uniform resource locator (URL) from a portlet would cause the entire page to refresh, losing the portal in favor of the Web site called by the URL. The developer may consider implementing simple navigation through new window model 110, in which a URL call from the portlet would cause a new window to open for the called Web site. Additionally and alternatively, event call model 109 may be implemented, in which navigation occurs as an event call instead of a URL call. The URL calls or any Web component interactions may be converted into events for the portal application through appropriate code drafted by the developer. As the called site arrives at the portal, the code underlying the Web flow of the portal reformats the called Web page to be presented within the portlet from where the URL or event call originated.
Because portals generally allow users to customize or personalize content or layout of the Web site, the developer considers, in step 103, the desirable customization tools or models to include within the Web site. Customization tools and applications may be implemented by the developer by drafting the appropriate computer code that would use ad hoc editing model 111, in which a separate page, interactive window, JSP, or the like is run to gather and store information from the user accessing the Web site or portlet. For example, if a user desires to change content of a particular portlet, ad hoc editing model 111 would provide a separate page for the user to potentially select a different information source or add information to customize the portlet. A storage utility may be provided by the code drafted by the developer to preserve the customization information entered by the user Additionally and alternatively, existing data model 112 may be coded by the developer, which uses pre-existing information from the user's login to customize or personalize the Web site experience. For example, as a user logs in, the information that may be stored on the user is then accessible to the portal. If a user includes a game application in the portal that may require a new password or ID, the existing login information may be used to supply the new password and/or ID for the game application. In this process, the user is only required to log in once to the portal, while the portal logic takes care of logging into the game application for the user. In step 104, the developer may then select the different models for implementing the separation of application logic offered by the Web site, such as through model-view-control (MVC) applications 113 or Web services 114. Once these considerations have been addressed, the portal or convertible Web application may be constructed by the developer using the appropriate code instructions.
The embodiment illustrated in
For example, an existing HTML page may include several different components that provide data to present to a user over the Web browser. These components may provide various information, such as news, access to email, stock prices, and the like, that is gathered from a database, Web service, or the like. A developer would generally move the components over to a portal platform. For each of the components moved, the developer would write code for a portlet. The portlets provide the display space for the information. As described above with respect to
In other embodiments, the methodology of
Additionally or alternatively, a developer may select a certain level or procedure to separate the business logic end from the presentation logic end and implement the selected separation in the code structure of the portal. In one embodiment illustrated by step 403, the business logic is modified to return its output as extensible markup language (XML) documents. Modern portal frameworks include utilities to read and present XML documents using template files such as extensible stylesheet language transformation (XSLT) documents. Thus, by returning XML documents, the output of the business logic becomes a standard format recognizable by most portal frameworks.
Additionally or alternatively to the modification of the existing business logic, client components may be created using appropriate code designed by the developer in step 404 for locating Web services to provide the business logic to the portal. Again, Web service or client interfaces may be provided in Simple Object Access Protocol (SOAP), which is an XML-based protocol, but leverages a standardized means for integrating Web services into the portal system. Web services may reside anywhere or be provided by different sources. Therefore, the portal system receives a good deal of application logic separation by using Web services to provide the business logic end.
Methodology 50 for converting a Web application into a portal application is illustrated in
In other embodiments, methodology 50 of