Weblogic Authors: Yeshim Deniz, Elizabeth White, Michael Meiner, Michael Bushong, Avi Rosenthal

Related Topics: Weblogic

Weblogic: Article

BEA WebLogic Portal Technical Overview

BEA WebLogic Portal Technical Overview

With the release of WebLogic Portal 4.0 in October 2001, BEA introduced a major update to its portal functionality and added significant new features. In this article, we'll give you a technical overview of the new product, and provide a glimpse of some of the new functionality you'll find in it.

Although the portal market is still very fragmented and not well-defined, and the concept of a portal remains vague, we can say that a portal comprises a number of concrete and useful paradigms: the user interface paradigm, the content and data aggregation paradigm, the application development paradigm, and the enterprise architecture paradigm. On the user interface side, the model has been firmly established by consumer portals such as MyYahoo! present content and information to the user in a compact way on a page and let the user customize the look and feel of that page. The content and data aggregation model of portals is also familiar to many: present the users with a set of content and data sources, let them choose what they want to see, and present the information to them through a browser interface with small, window-like elements we'll call portlets. As an application development approach, the portal allows developers to introduce new content and functionality incrementally, as portlets, which can be added without disrupting the rest of the portal.

Finally, in enterprises with complex IT environments, with a multitude of both legacy and new applications, the portal becomes the unifying platform that must allow aggregation of and integration with existing applications, as well as enable new application development. These paradigms apply regardless of the type of portal at hand, be it an internal employee portal, a consumer portal, or a partner and customer extranet portal.

BEA WebLogic Portal is a platform for creating a variety of portals, including employee, consumer, and partner portals. One way to look at it is as a J2EE application on top of WebLogic Server. On the other hand, one may look at it as a natural extension to WebLogic Server. In any case, WebLogic Portal will prove interesting to any developer creating complex, application server-based systems with portal-like characteristics.

Portal User Interface and Presentation Services
WebLogic Portal provides a user interface framework with prebuilt presentation elements and templates, which simplifies the creation of personalized portal sites. The interface centers on portlets - compact windows arranged on portal pages that provide access to content and applications - as its primary model for presentation and content aggregation (see Figure 1). While our experience shows that it is impossible to provide a Web interface framework that will satisfy everyone's needs, we think we've been able to find a good middle ground for those who would like to stay within the portal interface paradigm. The user interface framework works out of the box, but exposes enough to the developers that they can customize it as necessary. The interface consists of the following key elements:

  • Portal Main Page: The main portal template includes the portal header, portal footer, page navigation template, and the main portal content area. The main page is a JSP page that includes other JSP pages responsible for rendering their respective area of the portal.
  • Portal pages: The main portal content area may contain one or many pages that are "stacked" on top of each other. A tabbed navigation bar is used to quickly switch between pages by bringing a page to the front. Each page consists of one or more layouts, and contains portlets within a layout.
  • Portlets: Windows into applications and content that can be added to a portal page and presented as one or several rectangular windows.
  • Portal WebFlow: A mechanism for specifying the user interaction and navigation flow in the portal declaratively, as a set of events and actions, defined via a graphical WebFlow editor tool
  • Page layouts: "Wireframes" that define how portlets will be arranged on a portal page.
  • Skins: These determine the look and feel of the portal and are defined using Cascading Style Sheets.

    Page Layouts and Portlet Placeholders
    Each page in a portal page set can use one or more layouts to determine how portlets are arranged on the page. A layout consists of a number of portlet placeholders. Placeholders are rectangular areas that can accommodate one or more portlets, arranged vertically. Portlet placeholders can be arranged in a layout in any way - as a set of columns, as columns and rows, as rows spanning some columns, and so on.

    Under the covers, a layout template is implemented as an HTML table definition. Each table cell includes a JSP tag. At the time of page rendering, the tag makes calls to the portal engine to determine which portlets should be included within the cell.

    Because the layout definition is clean and concise, an HTML developer, even if unfamiliar with JSP, can easily create a new layout by drawing up an HTML table in a graphical HTML editor, and then cutting and pasting the JSP tag into table cells. Attributes that determine the width of the cells, the thickness of borders between cells, whether the cells have absolute or relative dimensions, and others, are determined by standard HTML table cell attributes and can easily be specified by an HTML developer.

    Additionally, not all of the cells in the layout table need to include portlets. A site designer may choose to have some areas that are not portlet-based and include static HTML content or a JSP page, making the layout mechanism flexible and customizable.

    Anatomy of Portal Rendering
    Most of the portal rendering is in the JSP layer. The main JSP template, portal.jsp, communicates with the portal engine to set up the rendering environment, including determining what skin to use, and delegates the rendering to sub-templates by including additional JSP templates. The sub-templates in turn include templates for specific areas of the portal, such as the header, the page navigation bar, the page layout area, and the footer.

    The JSP template for the page layout area is determined dynamically by consulting with the portal engine, according to group and user layout personalization settings, as there may be several layouts available for a given page. As mentioned above, the layout template contains an HTML table with a JSP tag in its cells - the portlet placeholder. At rendering time, the tag consults with the portal engine on which portlets to include, according to portlet entitlements and group and user portlet personalization. When a portlet is included in a layout, all of its JSP elements are included in the page, as well as the appropriate portlet view. At that time, the business logic implemented in the portlet view (or referenced from it) executes. Figure 2 illustrates the page aggregation and rendering process.

    Anatomy of a Portlet
    A portlet mimics a window control of a Windows-based user interface system, but within a portal page in a browser. A portlet window can be added, removed, minimized, maximized, and detached from the portal page. It is assembled from several JSP fragments: the portlet titlebar, the banner, the header, the content area, and the footer. The most important element of a portlet is its content area, provided by a portlet developer. The portlet content is a JSP page and may include simple HTML or dynamic data resulting from the execution of JSP tags or scriptlets, which call back-end components. The portlet content JSP can access any functionality that is available within the portal and is exposed via JSP tag libraries or Java APIs.

    Because portlets in WebLogic Portal can leverage WebFlow (see section below), the content area isn't limited to a single page, and may in fact be comprised of a set of pages, if required by the portlet interaction model.

    A portlet is a convenient component development paradigm. Once it is created, adding it to the portal interface and managing it is simple and done using administration tools. We see the portlet paradigm developing into a new component model, a sort of mini-application that includes both business logic and the user interface. Web services will figure prominently in this new model.

    Infrastructure Services and Features
    Of course, a portal isn't just a pretty façade - it needs solid infrastructure; features that cut down development time; and a scalable, standards-based architecture. WebLogic Portal uses the infrastructure provided by the underlying WebLogic Server, and adds features critical to creating full-featured, personalized portals.

    Built on J2EE and WebLogic Server
    WebLogic Portal is implemented using the J2EE architecture, and is in fact a J2EE application that runs in the WebLogic Server environment (see Figure 3). In J2EE terms, WebLogic Portal is an Enterprise Application. It consists of a collection of Enterprise Java Bean (EJB) components and a set of Web applications, which are collections of servlets, Java Server Pages (JSPs), JSP tag libraries, and supporting Java classes. Both the portal functionality itself and the portal management tools are part of the J2EE Enterprise Application.

    Because WebLogic Portal is a J2EE WebLogic Server application, it leverages the infrastructure provided, such as security, JDBC connection pooling, caching, clustering for failover and load balancing, J2EE application deployment, Web services support, system-level administration and management. For example, the WebLogic Portal Enterprise Application can be deployed over a set of clustered servers. This is in stark contrast to other Java-based portal implementations, which are typically confined to the servlet engine and the Web container and take little advantage of a J2EE application server.

    Moreover, because the WebLogic Server provides a complete J2EE application environment, new application components can be developed and added to the WebLogic Portal application. These components can range in complexity from JSP pages to Java classes to EJB components.

    You can see the J2EE structure of WebLogic Portal in the standard WebLogic Server administration console, where you can browse through the portal Enterprise Application and look at its constituent Web applications, EJBs, JSP tag libraries, and so on. You'll find the PortalManager Stateless Session Bean, which is the central component of the portal engine, and responsible for retrieving and persisting information about what users will actually see when they log into the portal-portlets, pages, layouts, skins, and so on.

    Security and User and Group Management
    The WebLogic Portal main authentication, authorization, and personalization model is built upon the concept of user groups. User access to a portal, and that user's primary view of the portal, is determined by the user's group membership. WebLogic Portal provides infrastructure and tools to define the structure of groups and the membership of users within groups. This design leverages the J2EE role and principal concepts provided by the underlying WebLogic Server.

    WebLogic Portal uses the security realm mechanism provided by WebLogic Server for user and group information. It offers a plug-in security interface, which has been used by leading third-party security vendors to enable access to their user repositories. This enables WebLogic Portal to use such third-party systems for user and group information.

    Application Deployment Model
    Many products that provide portal, personalization, or commerce functionality are database-driven. The application configuration, business rules, attributes, and parameters are stored in relational database tables, along with the actual application transactional information.

    Administration and configuration tools typically operate on the server instance and modify database records. One advantage of this approach is the fact that changes in the application behavior can be effected immediately; however, what if the changes require review and approval? How are those changes moved between development, staging, and production instances? How can the changes be versioned and rolled back if necessary? How can concurrent development be performed? Systems that are completely database-driven attempt to address these issues by either implementing proprietary version control systems inside the database, or by resorting to database scripts to move information between staging databases.

    WebLogic Portal introduces an application deployment model that uses XML files. With this model, the application business configuration data, such as business rule definitions, user profile definitions, navigational and process WebFlows, along with portal and portlet definitions, is expressed in XML format and stored in the file system. Of course, frequently updated transactional application data, such as customer information, order information, and user profile attribute values, remains in a relational database.

    With this model, on the development side, the definitions created in the WebLogic Portal tool suite, E-Business Control Center, result in XML files created on the local file system. On the server side, a special set of deployment services takes the XML files and deploys them to the server. A source-control management system or a content management system can be introduced between the development and the deployment steps, to implement versioning, check-in and check-out, and approval workflow, as well as to restrict access to specific deployment files (see Figure 5).

    Portal Tools
    You will find two sets of tools in WebLogic Portal: a Java client-based tool suite, the E-Business Control Center (EBCC), and the browser-based set of Portal Administration tools. The EBCC provides rich graphical interfaces that simplify complex tasks such as rule definition, WebFlow editing, and portal creation and management. EBCC plays within the Application Deployment architecture described earlier: as users work with its point-and-click interface, it generates XML files that are synchronized with the server. The browser-based Portal Administration tools focus primarily on administering and managing the portal at runtime. Figure 6 shows the EBCC Portal module.

    Delegated Administration
    Browser-based Portal Administration tools support delegated administration. Delegated administration, sometimes called decentralized administration, is a necessity in today's portal environments. It's common to delegate authority not only to members of IT personnel, but to other users to enable them to perform tasks related to their duties. Delegation takes the load off the central administrator, without granting sweeping administrative authority to every user.

    WebLogic Portal provides the infrastructure and tools for setting up the delegated administration structure and specifying the specific tasks that are delegated and the scope within which the delegated administrator will operate. For example, it's possible to set up a delegated administrator who is authorized to perform certain portal management tasks (such as managing users, managing look and feel, or managing portlet permissions) only for a certain group of users, or for several groups, or for all groups in particular portal. Figure 7 shows the Delegated Administration tool.

    Rule-Based Entitlements
    WebLogic Portal provides group-based access control as a default way for controlling access to a portal. Group-based access control is typical of many portal products; it's most useful when the user group structure changes infrequently, and the access to portlets and pages maps well to user groups. However, group-based access control is not sufficient if access to portlets or pages is dependent on a more complex set of conditions than simply the group membership, or if it may need to change dynamically based on changes to the user profile, without the involvement of an administrator.

    With traditional group-based or role-based access control, the placement of a user in a group or a role rests with an administrator. Where a more dynamic, flexible entitlement behavior is needed, rule-based entitlements become helpful. With rule-based entitlements, the business rule behind an entitlement becomes a self-documenting business policy that governs whether a user is given access to portal content through portlets or portal pages.

    An example of a rule-based entitlement is to imagine an investment portal with a portal page that contains portlets and information related to option trading. The portal page has an entitlement associated with it that specifies that the page is visible only to users that fall under the "OptionTradingEligible" entitlement segment. The "OptionTradingEligible" entitlement segment is defined by a dynamic rule that executes against the profile of the user and verifies that "OptionApplicationFiled" attribute is set to "true" and that the "AccountBalance" attribute has a value over $25,000. The "OptionTradingEligible" entitlement segment thus represents a business policy that this portal chose to use to govern access to one of its pages.

    Rule-based entitlements govern not only whether a given portlet or page is accessible to a given set of users, but also whether a given portlet is mandatory, or whether the users can edit it.

    WebFlow is designed to help you build Web applications that maintain the much-desired separation between presentation logic and underlying business processes. Because WebFlow's centralized XML configuration files specify the order in which pages are displayed to your Web site's visitors, use of the WebFlow mechanism may reduce the work necessary to create and modify the flow of your Web site. At appropriate times during a visitor's interaction, the WebFlow may also invoke predefined, specialized components to validate data or to execute back-end business processes. Therefore, using it may also make it faster and easier for your development team to complete modifications that require back-end programming (see Figure 8).

    WebFlow and Portlets
    Portlets in a portal may range in complexity from simple read-only views of content to complex "mini-applications" with sophisticated interaction flows. If a portlet requires nontrivial interaction with the user, it will benefit from using the WebFlow mechanism. WebLogic Portal allows each of the portlets in a portal to have its own WebFlow. For example, an HR benefits sign-up portlet may consist of a number of screens that are different forms a user needs to step through and fill out. The interaction flow with these screens may be controlled by WebFlow.

    In addition, several portlets may interact with one another via the WebFlow. Suppose that a suite of portlets provides customer and order information through a portal. Entering a customer number in one portlet results in a display of the status of the latest orders in this portlet, and details of the customer account in another. This is achieved by having portlets examine events posted by other portlets in the course of WebFlow execution.The inter-portlet communication enabled by WebFlow is invaluable in portals that go beyond simply exposing the view into content and aim to present an interactive window into applications.

    In conversations with customers, developers, and analysts, I've found that people find WebFlow is another step toward doing away with the grunge of coding complex navigation and validation into Web applications. It makes simple things easy, but it also makes more advanced processing possible-if you need to introduce complex data validation code between transitions, just add an Input Processor, and write your validation logic in Java. If you need to invoke back-end functionality, such as EJB components, add a Pipeline Component, and write your client code there.

    In addition to the end-user and group personalization of the portal content and interface, typical for many portal frameworks, WebLogic Portal supports fine-grained, rule-based personalization.

    Two key pieces of personalization are the user profile and the rules engine. Based on the values of attributes in the user profile, business rules can be defined and used to personalize the content presented to the user and the interaction with the user. The business rules may also be based on other parameters, such as session attributes, request attributes, and time. For example, a rule may be defined to place users in a segment when their Zip Code attribute is 94104 and the time is between 9 a.m. and 5 p.m.

    A business rule may also be used to directly relate a user segment to content metadata, creating a content selector. When a content selector is executed, it returns a collection of content with matching metadata. For example, a content selector may specify that only financial content be returned whose metadata matches the investment preference attribute values in the user profile. The content personalization functionality ties closely with the Content Management interface (described later) provided by WebLogic Portal.

    The JSP tags that provide access to rule-based content personalization can be used anywhere within the portal user interface: inside a portlet, within the portal header and footer, or within the page layout template. This allows for fine-grained personalization.

    WebLogic Portal provides a tool for defining personalization rules, very similar to the rule-based entitlement tool described earlier. Both features rely on the same base technology, the BEA rules engine.

    Unified User Profile
    While some attributes in a user profile will be newly created as part of the portal application, our customers almost always have to incorporate user information from existing data stores and applications. The Unified User Profile (UUP; see Figure 9) provides the architecture for presenting a single view of the profile across disparate data sources.

    The UUP is implemented as a Stateless Session EJB, which acts as an aggregation interface to multiple stateless session EJBs responsible for retrieving their portion of the user data. On the portal side, the attributes in the Unified User Profile can be accessed via an administration tool, as well as programmatically, via an API or a JSP tag library.

    To map user attributes from an existing system to the UUP, a developer implements an interface that accesses the source system and retrieves specific properties, and registers this implementation with WebLogic Portal. The UUP provides a high degree of flexibility in mapping attributes from multiple sources. For example, the total set of attributes in a user profile may comprise a subset of attributes stored in LDAP, a subset of attributes stored in a default RDBMS profile store, and a subset that comes from a custom database.

    As the Java 2 CA takes hold, more and more legacy systems will be exposed via standard adapters, which means less custom coding will be needed to access the existing profile information. UUP then will evolve into an aggregate representation of these adapters that creates a single view of the profile.

    BEA WebLogic Integration (WLI) is a suite of products for application integration, business process management, and B2B integration functionality for the enterprise. Both WLI and WebLogic Portal leverage the same WebLogic application server platform. Combining WLI and WebLogic Portal allows enterprises to roll out solutions that address end-to-end portal requirements, from the personalized portal front-end to back-end application integration. WebLogic Portal and WLI can work together to enable fully integrated enterprise applications. WebLogic Portal's WebFlow, UUP, and business services can work with WLI's business-to-business integration (B2Bi), business process management (BPM), and application integration (AI) features to facilitate process-level communication and data flow between Web applications and other enterprise systems.

    Web Services Integration
    With WebLogic Portal, developers can create Web services for consumption by other applications, as well as aggregate existing Web services into the portal. For Web service aggregation, WebLogic Portal provides Web services SOAP-client functionality and a tool for automatic creation of portlets that allow end-users to interact with Web services (see Figure 10). The tool can introspect a WSDL file and automatically generate JSP code for a portlet to allow the end user to interact with the Web service.

    For Web service creation, the foundation of WebLogic Portal - the WebLogic application server - includes comprehensive Web service support, including the ability to automatically expose functionality that runs within the application server as Web services. Thus, developers creating new functionality as part of a portal application may expose that functionality not just via the portlet user interface, but also as a Web service to be accessed by other applications.

    Additional Features
    In this article, I've reviewed some of the features of WebLogic Portal but haven't done justice to many others, including built-in commerce capabilities, campaign and interaction management, content management, and event and behavior tracking. However, if you evaluate WebLogic Portal, you'll find that it's equipped with a fully-featured commerce server that will be helpful in creating a portal that needs commerce functionality. You'll also find an impressive point-and-click tool for designing campaign scenarios that govern how end-users will interact with the site. The event and behavior tracking will allow you to track any important interactions that occur within the portal. Finally, the content management interface enables integration with many off-the-shelf content management systems, but also includes a reference implementation content repository that will help you get started with a prototype.

    BEA WebLogic Portal provides a high level of base portal functionality to simplify complex portal development, maintenance, and security. It simplifies the rapid creation, customization, and administration of enterprise, partner, and customer portals.

    Developers will find a breadth of functionality that will save time in developing a portal solution. At the same time, the product exposes many extensibility points where the developers can customize the default behavior.

    You will also find that WebLogic Portal is a true implementation of the J2EE component model in the WebLogic environment, and represents best practices in developing large applications in J2EE environments. It was built from the ground up on WebLogic Server, and our engineers had no choice but to fully utilize all that WebLogic Server has to offer. After all, portals are complex applications, so they should be exploiting the application server to the fullest.

    Download a copy of WebLogic Portal from www.bea.com.

  • More Stories By Dmitry Dimov

    Dmitry Dimov is the product manager of BEA Systems' e-commerce Applicaiton Components Division. He is part of the team responsible for the design and release of BEA WebLogic Portal and works closely with engineering to ensure the successful implementation of a competitive and innovative product. Previously, Mr. Dimov was responsible for the design and release of versions of BEA WebLogic Commerce Server and BEA WebLogic Personalization Server.

    Comments (0)

    Share your thoughts on this story.

    Add your comment
    You must be signed in to add a comment. Sign-in | Register

    In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.

    IoT & Smart Cities Stories
    The Master of Science in Artificial Intelligence (MSAI) provides a comprehensive framework of theory and practice in the emerging field of AI. The program delivers the foundational knowledge needed to explore both key contextual areas and complex technical applications of AI systems. Curriculum incorporates elements of data science, robotics, and machine learning-enabling you to pursue a holistic and interdisciplinary course of study while preparing for a position in AI research, operations, ...
    CloudEXPO has been the M&A capital for Cloud companies for more than a decade with memorable acquisition news stories which came out of CloudEXPO expo floor. DevOpsSUMMIT New York faculty member Greg Bledsoe shared his views on IBM's Red Hat acquisition live from NASDAQ floor. Acquisition news was announced during CloudEXPO New York which took place November 12-13, 2019 in New York City.
    Codete accelerates their clients growth through technological expertise and experience. Codite team works with organizations to meet the challenges that digitalization presents. Their clients include digital start-ups as well as established enterprises in the IT industry. To stay competitive in a highly innovative IT industry, strong R&D departments and bold spin-off initiatives is a must. Codete Data Science and Software Architects teams help corporate clients to stay up to date with the mod...
    The Japan External Trade Organization (JETRO) is a non-profit organization that provides business support services to companies expanding to Japan. With the support of JETRO's dedicated staff, clients can incorporate their business; receive visa, immigration, and HR support; find dedicated office space; identify local government subsidies; get tailored market studies; and more.
    Tapping into blockchain revolution early enough translates into a substantial business competitiveness advantage. Codete comprehensively develops custom, blockchain-based business solutions, founded on the most advanced cryptographic innovations, and striking a balance point between complexity of the technologies used in quickly-changing stack building, business impact, and cost-effectiveness. Codete researches and provides business consultancy in the field of single most thrilling innovative te...
    Atmosera delivers modern cloud services that maximize the advantages of cloud-based infrastructures. Offering private, hybrid, and public cloud solutions, Atmosera works closely with customers to engineer, deploy, and operate cloud architectures with advanced services that deliver strategic business outcomes. Atmosera's expertise simplifies the process of cloud transformation and our 20+ years of experience managing complex IT environments provides our customers with the confidence and trust tha...
    With the introduction of IoT and Smart Living in every aspect of our lives, one question has become relevant: What are the security implications? To answer this, first we have to look and explore the security models of the technologies that IoT is founded upon. In his session at @ThingsExpo, Nevi Kaja, a Research Engineer at Ford Motor Company, discussed some of the security challenges of the IoT infrastructure and related how these aspects impact Smart Living. The material was delivered interac...
    Intel is an American multinational corporation and technology company headquartered in Santa Clara, California, in the Silicon Valley. It is the world's second largest and second highest valued semiconductor chip maker based on revenue after being overtaken by Samsung, and is the inventor of the x86 series of microprocessors, the processors found in most personal computers (PCs). Intel supplies processors for computer system manufacturers such as Apple, Lenovo, HP, and Dell. Intel also manufactu...
    Darktrace is the world's leading AI company for cyber security. Created by mathematicians from the University of Cambridge, Darktrace's Enterprise Immune System is the first non-consumer application of machine learning to work at scale, across all network types, from physical, virtualized, and cloud, through to IoT and industrial control systems. Installed as a self-configuring cyber defense platform, Darktrace continuously learns what is ‘normal' for all devices and users, updating its understa...
    At CloudEXPO Silicon Valley, June 24-26, 2019, Digital Transformation (DX) is a major focus with expanded DevOpsSUMMIT and FinTechEXPO programs within the DXWorldEXPO agenda. Successful transformation requires a laser focus on being data-driven and on using all the tools available that enable transformation if they plan to survive over the long term. A total of 88% of Fortune 500 companies from a generation ago are now out of business. Only 12% still survive. Similar percentages are found throug...