HomeDigital EditionSys-Con RadioSearch Web Services Cd
B2B Beginning WS Business Process Management Case Studies Content Management Distributing Computing e-Business Electronic Data Interchange Enterprise Industry Insight Integration Interviews Java & Web Services .NET Portal Product Reviews Scalability & Performance Security SOAP Source Code UDDI Wireless WS Standards WS Tips & Techniques WSDL WS Editorials XML

Will Standards Turn Portals into Commodities?
Two approaches that work

As a senior architect I always have a weather eye on evolving technologies in order to answer questions on how decisions made today will affect applications three to five years into the future. Occasionally, I hear or read a bellwether statement, one that makes me say, "I need to dig deeper into what was said in order to better understand its implications and track the underlying technology's evolution because it could have a significant impact on the way we are, or should be, developing applications." That was my reaction when I read Robert Brock's comments in the March 25, 2002, issue of eWeek: "If the [JSR 168] standard becomes successful, then the portal could become a commodity, just like Netscape or Internet Explorer."

When I started researching Brock's comment, I found not one but two standards proposals: JSR (Java Specification Request) 168, which is the Java Community Process's (JCP's) initiative for creating a standard application programming interface (API) between portals and portlets; and Web Services for Remote Portals (WSRP), OASIS initiative for standardizing the interface between portals and remote portlets. The standards are finally out in version 1.0 form, describing a set of interfaces that could in fact turn Brock's prediction into a reality. In this article, I'll look at the standards, the question of portals becoming commodities, and the importance that question's answer might have on your organization's decisions in writing applications today.

When Robert Brock made his comment about portals he was actually talking about "portal frameworks." What's the difference? A portal is a Web site; it is a collection of links, or windows, geared towards a particular set of content, workflow, transactions, or collection of systems. A portal's distinguishing characteristic is the type of content it provides:

  • Mega portals aim to be one-stop gateways to the Web.
  • Horizontal portals aggregate information across subject areas or industries.
  • Vertical portals aggregate information within a subject area or industry.
  • Enterprise portals aggregate information for an organization.

    Portal frameworks provide the infrastructure and tools for building portal sites regardless of which type they might be.

    A typical portal framework combines a number of different tools. First and foremost, it contains the tools needed to aggregate, organize, and present information through a Web browser. Portals from this perspective are analogous to icons on the Windows desktop at an operating systems level or database icons on Lotus Notes' desktop pages at an applications level: they provide a convenient way for users to organize information. In this role, portals provide a uniform look and feel while allowing users to customize and personalize presentation.

    The user interface to a portal is a portal page, containing some number of portlets that users can arrange into columns and rows and minimize, maximize, or arrange to suit their individual needs. Each portlet is a window into a Web site or application. The portal framework can define a default common look and feel for the portlets appearing on the portal page, and is responsible for intercepting and routing URL requests into specific portlets and for supporting navigation both between portlets and, in some instances, within portlets.

    In addition to managing aggregation and presentation, the portal framework provides the infrastructure for handling common services across portlets. Portal frameworks now include an increasing number of advanced capabilities, such as:

    • Business intelligence
    • Categorization
    • Collaboration
    • Content management
    • Integration
    • Knowledge management
    • Search
    • Security
    • Reporting
    • Wireless access
    • Workflow
    The framework may provide these capabilities natively or through third-party, add-in products. It is becoming increasingly difficult to determine where portal frameworks end and the advanced capabilities begin.

    JSR 168
    JSR 168 Version 1.0 became part of Java 2 in October with the Executive Committee for SE/EE's approval of the 1.0 specification. JSR 168 creates a standard API for portlets to "plug into" Java 2 Enterprise Edition ( J2EE)-based portal frameworks. The goal is to have this API provide applications with portability across portal frameworks - allowing an application written to work in one framework to be able to execute in any standards compliant framework.

    JSR 168 defines a portlet as a Web component that is managed by a portlet container. The portlet container runs portlets and provides them with the necessary runtime environment. The portlet container may operate either as part of or independently of a portal application (framework), the portal application being responsible for common portal services. Figure 1 shows the JSR 168 Portal Reference Architecture, originally presented in Alejandro Abnelnur's Portlet Specification briefing to the OASIS Technical Committee (you can find the briefing in its entirety at the OASIS Web site, www.oasis-open.org), modified to illustrate these components. In this architecture, the portlet generates markup fragments that the portlet container provides to the portal framework; the portal framework adds a frame, a title, and control buttons to create a portal window that becomes part of a larger portal page.

    The JSR 168 API provides standard interfaces that allow Java-based portlets to interact with the portlet container and portal framework. The API defines standard interaction points exposed through an extensible portlet interface. It includes classes and methods for:

  • Life-cycle management: Enabling portlets to interact with the container during portlet construction, destruction, and initialization
  • Presentation: Allowing portlets to detect and set window states and portlet modes, and render content through interactions with a preferences object within a portal window
  • Personalization: Allowing portlets to set and access user preferences and profile information
  • Security: Providing portlets access to user authentication and session information

    While JSR 168 addresses the interfaces between local portlets and the portlet container, it leaves it to the vendor to work out the interfaces between the portlet container and the portal framework, and it looks to WSRP to address the issue of remote execution.

    WSRP Version 1.0
    OASIS approved WSRP Version 1.0 as an OASIS standard in August; they are now working on Version 1.1, which is due out next year. WSRP provides a component model that allows user-facing Web services to easily plug into portal frameworks as remote portlets. Figure 2 shows the WSRP Reference Portal Architecture (see the WSRP Overview briefing at the OASIS web site) that supports both local and remote portlets. Local portlets run on the portal server (framework) and interact with the portal framework through the Portal API ( JSR 168 for J2EEbased frameworks). Remote portlets run on another server and interact with the portal server through Generic Portlet Proxies and WSRP. Generic Portlet Proxies allow the portal server to interact with remote portlets in the same way it interacts with its own local portlets, through the Portal API. WSRP provides the protocol for the portal server to interact with the remote server. WSRP also allows the portal server to make its local portlets available to other portals.

    WSRP defines portal services as interactions between consumers and producers, where consumers are applications and portals that "consume" portlet services and producers are portal frameworks (or Web services applications) providing those services. WSRP defines portlets as Web services that generate markup and permit consumers to interact with that markup, and WSRP producers as containers containing Web services portlets. In this model, portlet containers expose their framework and the local portlets it supports through four types of Web services interfaces:

  • Service description: Enables consumers to learn about the producer's capabilities and its portlets
  • Markup: Allows consumers to request and interact with markup fragments and to convey information about window modes and states
  • Portlet management: Gives consumers access to portlet state and property information and influence over portlet life-cycle events
  • Registration: Allows consumers to create relationships with producers; and to register, deregister, and modify relationship information

    WSRP builds on Web services standards for publishing, finding, and binding services. Its goal is to enable any application, including portal frameworks, to publish their content as portlets, which portals can consume.

    JSR 168 and WSRP are complementary: one's focus is on the local portlet code and its interactions with the framework while the other's is on remote interactions. Once both standards mature and appear in products, you will be able to develop portlet applications to the JSR 168 standard and depend on portal frameworks to provide WSRP services, when appropriate, as illustrated in Figure 3. This will allow you to create "write once, run anywhere" portlet applications without concern for whether users will access the portlets locally or remotely, through the framework or through another application.

    JSR 168 and WSRP lay the foundations for future portal framework products. Brock's comment about portals becoming commodities implies a level of standardization that creates a certain degree of product agnosticism. This agnosticism could occur at two levels: at the market level determining the future of framework products themselves and at the individual developer level determining how you should be writing your particular applications. Are the standards enablers at either level? Yes. I've already discussed how they are enablers at the individual developer or application level.

    To answer the question at the market level, let's look at what it means to become a commodity at the market level and how the standards' scope might affect the outcome, and forecast possible outcomes and what they would mean to you in terms of how you develop applications.

    First, what does it mean to say the portal framework could become a commodity? A commodity is a product or service offered at or below cost to drive the sales of other products. Products tend to become commodities when the cost is already low and price becomes the sole discriminator. When a product becomes a commodity, it tends to lose its identity as it is absorbed into other products. Most of us immediately think of the Web browser when someone talks about commodities and software. Netscape and Microsoft "gave" browsers away in hopes of using them to sell other products. Could the JSR 168 and WSRP standards cause a similar phenomenon with portal frameworks, at least within the Java community? Could portal frameworks in this community become free or lose their identity?

    Second, how does scope impact the answers to these questions? JSR 168 and WSRP focus on core portal functionality (aggregation and personalization) rather than advanced features (search, content management, knowledge management, and business intelligence), meaning they only address a subset of portal framework functionality. This opens the possibility for multiple classes (a high and a low end) of portal frameworks.

    Finally, both standards distinguish between portlet containers and portal frameworks (leaving aggregation to the framework) and focus on defining the interfaces between portlets and portlet containers. This distinction opens the door for vendors to incorporate portlet containers, but not portal frameworks, into their products (similar to Web servers today where some Web servers are also J2EE Web containers).

    Figure 4 summarizes the possible outcomes:

  • Outcome 1: Portal Framework
    Commodities:
    Portal frameworks become commodities and lose their identities - application server products absorb them from below and Enhanced Functionality (content management, knowledge management, and business intelligence) platforms absorb them from above.
  • Outcome 2: Portal Framework
    Proliferation:
    Portal frameworks retain their identity as separate products, but they continue to appear in both application servers and enhanced functionality products.
  • Outcome 3: Portal Framework
    Convergence:
    Portal frameworks retain their identity as separate products, but disappear from application servers and enhanced functionality platforms because they switch from framework to container strategies.

    Let's look at the likelihood of each.

    Outcome 3, which is a return to pureplay portal products, is the least likely of the three to occur. Many application server and enhanced functionality vendors already include portal frameworks as part of their products today. Oracle and BEA Systems are examples in the application server market; BroadVision, PeopleSoft, and SAP are examples in the enhanced functionality platform market. JSR 168 and WSRP containers offer an alternative by making it easier to tie products together, increasing portability and interoperability, and potentially reducing product development costs, but the question becomes why would vendors who are successfully integrating frameworks today switch strategies, limiting themselves to providing only portlet containers. The answer is they wouldn't. Such a strategy would create dependencies in areas where they do not have dependencies today, while only marginally reducing costs. This would reduce their ability to discriminate their product from the competition's and prove too limiting.

    Outcome 2 is the second least likely to occur. With both application server and enhanced functionality vendors integrating portal frameworks as part of their product offerings, the market for pure-play portal frameworks becomes very narrow and primarily price driven. The question becomes whether pure-play portal frameworks can survive in such a narrow space. For this scenario to play out, pure-play vendors would have to find ways, other than price, to distinguish their products; the need for product differentiation would drive these vendors to compete on enhanced functionality and features. You have to ask, at what point would increasingly function-rich, featureladen products cease being portal frameworks and become either application servers or enhanced functionality platforms?

    That leads us to Outcome 1 being the most likely of the three to occur. Application server vendors will incorporate JSR 168- and WSRP-compliant container capabilities into their products in order to maintain standards compliance. They will continue to include frameworks in order to differentiate their products and to promote their products' use in development environments. Others will follow in order to remain competitive. At the other end of the spectrum, enhanced functionality platforms will continue incorporating portal frameworks into their products in order to promote the enhanced functionality they offer and to provide full, independent solutions. They will include JSR 168 and WSRP containers in order to increase portability and interoperability. These trends' combined force will make price the primary discriminator for pure-play portal frameworks, making it unlikely they will be able to maintain their identity.

    Conclusion
    My weather eye sees the same future as Brock's: portal frameworks will in all likelihood become commodities (though it's debatable whether normal market pressures, rather than standards, aren't the real driving force). Given this prediction, you are probably asking what you should do to position your applications. First you should ensure you are working with vendors that have been part of the JSR 168 and WSRP standards efforts with strong commitments to integrating the standards into their products. Once the standards appear in the products you use, you should focus on writing portlets using the standards' defined APIs and interfaces, avoiding to the maximum extent possible any proprietary extensions. This should allow you to develop "write once, run anywhere" portlets, provided you stick with standards-based products. What if the prediction is wrong? How would this strategy change? It wouldn't! That's the beauty of standards and one of the benefits of the JSR 168 and WSRP efforts.

    Regardless of which scenario actually unfolds, you should be able to develop "write once, run anywhere" portlets that make your applications more or less product agnostic and able to integrate with any of the standards-based frameworks. This promise is what following standards-based strategies is all about.

    References

  • Java Community Process: www.jcp.org/jsr/detail/168.jsp
  • Abdelnur, Alejandro, et al. "Portlet Specification" Proposed Final Draft 2, Version 1.0, 08 August 2003.
  • OASIS Web Services for Remote Portal Web Site: www.oasis-open.org/committees/wsrp
  • Kropp, Alan, et al. " Web Services for Remote Portlets Specification". Approved as an OASIS Standard August 2003..

    About the Author
    Rickland Hollar is a senior applications architect with the Central Intelligence Agency with over 30 years of experience in the industry. Prior to joining the CIA, he was president of a Virginia-based software development firm. rick_hollar@yahoo.com

    All Rights Reserved
    Copyright ©  2004 SYS-CON Media, Inc.

      E-mail: info@sys-con.com

    Java and Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries. SYS-CON Publications, Inc. is independent of Sun Microsystems, Inc.