Oracle9iAS Portal Developer Kit
Understanding the Provider Runtime

A Web Provider is one that is written as a Web application. It is installed and hosted on a Web server remote from the Portal.   A Web Provider owns and manages a set of portlets.  To the portal, a Web Provider is a server-side Web program that responds to a well defined set of requests.  The Portal communicates to the Web Provider using the HTTP protocol.  PDK-Java (JPDK) is responsible for simplifying the communication between Portal and Web Provider.

The main purpose of the PDK-Java (JPDK) is to provide a framework that simplifies implementation while representing the Provider architecture in a natural way to Java developers.  The JPDK is composed of four functional areas: 

This article lists and describes the classes that comprise the Provider Runtime. Knowing the base implementation available to you will limit the amount of programming needed to develop your portlets.

The Provider Runtime provides an implementation for each of the Web Provider Interfaces. For more information on the set of Web Provider Interfaces, please review the Understanding the Provider Interfaces article. 

The Provider Runtime is a set of classes that implement the Web Provider Interfaces in the servlet environment.  The set of classes is a base implementation which you can use to simplify the development of Java portlets.  You can achieve this by using the default implementation and subclassing where additional functionality is needed.  The Provider Runtime corresponding to the Provider Interfaces are:

Provider

The DefaultProvider (oracle.portal.provider.v1.http.DefaultProvider) is the implementation of the Provider interface.  The DefaultProvider's main function is to manage a set of portlets.  The DefaultProvider uses a declaration file called provider.xml to list and describe the portlets it manages.  It also has a set of methods whose function is to answer the requests from Oracle9iAS Portal. 

You can use the base implementation offered by the DefaultProvider or you can subclass and override its methods to expand on this behavior.  For more information on the DefaultProvider, review the Understanding the DefaultProvider article.

Portlet

The DefaultPortlet (oracle.portal.provider.v1.http.DefaultPortlet) is the implementation of the Portlet interface.  The DefaultPortlet's main function is to store information about the render modes of the portlets.   When a portlet needs to be rendered, Oracle9iAS Portal sends a request to the DefaultPortlet.  The DefaultPortlet returns information back to the Portal which specifies which class to call.  The PageRenderer and DefaultPersonalizationManager actually do the work required by Oracle9iAS Portal.  

You normally would not need to subclass the DefaultPortlet.

PortletRenderer

RenderManager (oracle.portal.provider.v1.http.RenderManager) is the implementation of the PortletRenderer.  The RenderManager  has the following pluggable renderers to simplify creating Java portlets.

These renderers allow you to utilitize JSP, Java Classes, Servlets, HTML file easily by supplying the class or file name in the provider definition file.

PortletPersonalizationManager

PDK-Java provides two implementations of PortletPersonalizationManager, FilePersonalizationManager (oracle.portal.provider.v1.FilePersonalizationManager) and DBPersonalizationManager(oracle.portal.provider.v1.DBPersonalizationManager.  Both implementations allow you to add customize objects to your portlet, but they differ in the following.  FilePersonalizationManager stores customization in the filesystem whereas DBPersonalizationManager stores customization in a database table.  

PortletSecurityManager

DefaultSecurityManager (oracle.portal.provider.v1.DefaultSecurityManager) is the implementation of the PortletSecurityManager interface.  DefaultSecurityManager is a simple access controller for a portlet that uses a user's authentication level to control access. A user will be granted access to a portlet if his/her authentication level is greater than or equal to the security level that has been specified for the security manager. 


Revision History: