<?xml version="1.0" encoding="UTF-8"?>
<!-- 
Copyright 2004 The Apache Software Foundation
Licensed  under the  Apache License,  Version 2.0  (the "License");
you may not use  this file  except in  compliance with the License.
You may obtain a copy of the License at 

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed  under the  License is distributed on an "AS IS" BASIS,
WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
implied.

See the License for the specific language governing permissions and
limitations under the License.
-->
<document>
  <properties>
    <author email="unknown">Jean-Baptiste Joret</author>
    <author email="david.AT.daviddewolf.DOT.com">David H. DeWolf</author>
    <title>Pluto Project</title>
  </properties>

<body>
  <section name="Architecture Overview">

<p>
    Let's begin by examining Pluto's architecture and underlying concepts.
    First, we briefly explain the portal that runs the RI, and see where 
    to find a portlet container inside a portal architecture. Next, we 
    investigate Pluto's architecture in detail. Last, we look at how it 
    solves one challenging item of the portlet container: portlet deployment.
</p>

<p><strong>The Portal</strong>
   <blockquote>
   Pluto normally serves to show how the Portlet API works and 
   offers developers a working example platform from which they can test 
   their portlets. However, it's cumbersome to execute and test the portlet 
   container without a driver, in this case, the portal. Pluto's simple 
   portal component is built only on the portlet container's and the JSR 
   168's requirements. (In contrast, the more sophisticated, open source 
   Apache Jetspeed project concentrates on the portal itself rather than 
   the portlet container, and considers requirements from other groups.)
   </blockquote>

   <blockquote>
   Figure 1 depicts the portal's basic architecture. The portal Web 
   application processes the client request, retrieves the portlets on 
   the user's current page, and then calls the portlet container to 
   retrieve each portlet's content. The portal accesses the portlet 
   container with the Portlet Container Invoker API, representing the 
   portlet container's main interface supporting request-based methods 
   to call portlets from a portal's viewpoint. The container's user must 
   implement the portlet container's Container Provider SPI (Service 
   Provider Interface) callback interface to get portal-related 
   information. Finally, the portlet container calls all portlets 
   via the Portlet API.
   </blockquote>

   <blockquote>
   <div align="center">
		   <p>
         <a href="../../images/v101/jw-0801-portal_arch.jpg">
           <img src="../../images/v101/jw-0801-portal_arch.jpg"
                alt="Portal Architecture" width="500"/></a></p>
        <p><b><i><font size="-1">Figure 1. The simple portal included with Pluto. Click on the picture to enlarge it</font></i></b></p>
   </div>
   </blockquote>
</p>

<p><strong>The Portlet Container</strong>
   <blockquote>
   The portlet container, the portlets' runtime environment and a core
   component of each portal, requires knowledge about the portal itself 
   and must reuse common code from it. Consequently, the portlet 
   container remains completely separated from every other portal component.
   That said, you can embed the standalone portlet container in any portal 
   by complying with the portlet container's requirements, such as 
   implementing all SPIs.
   </blockquote>

   <blockquote>
   The Portlet Container Invoker API, also called an entrance point, acts 
   as the portlet container's main calling interface. The API combines a 
   portlet container's lifecycle (init, destroy) with request-based 
   calling methods (initPage(), performTitle(), portletService(), and so 
   on). Because the portlet container calls a portlet in the end, the 
   method signature resembles the Portlet API's main portlet interface, 
   except that a portlet identifier must be passed. With this additional 
   portlet identifier, the container can determine the portlet and call 
   it accordingly.
   </blockquote>

   <blockquote>
   Besides using the APIs to access the portlet container, the portal
   must implement SPIs defined for the portlet container. Therefore, 
   the RI introduces container services: pluggable components that can 
   be registered at the container to either extend or provide basic 
   functionality. The RI includes the following built-in container services 
   (the first four must be implemented to run the portlet container, while 
   the fifth is optional): 
   </blockquote>

   <blockquote>
   <ul>
   <li> Information provider: Gives the portlet container information about 
        the portal and its framework. Only known information or information 
        that should be stored within the portal is present through this 
        interface. Such information includes URL generation with navigational 
        state, portlet context, portlet mode, and window-state handling</li>
   <li> Factory manager: Defines how to get an implementation through a 
        factory. (A normal portal should already own such an implementation.)</li>
   <li> Log service: Defines a logging facility. (A normal portal should 
        already own such an implementation.)</li>
   <li> Config service: Defines how to get configuration values. (A normal portal 
        should already own such an implementation.)</li>
   <li> Property manager (optional): A property manager interface implementation 
        lets a portal handle properties as defined in the JSR 168 specification.</li>
   </ul>
   </blockquote>

   <blockquote>
   Strictly speaking, the Portlet Object Model also acts as an SPI, but has an 
   exceptional position among the SPIs. Therefore, don't consider it part of the 
   container services as it deals with all portlet objects and comprises a collection
   of interwoven interfaces.
   </blockquote>

   <blockquote>
   <div align="center">
        <p>
          <a href="../../images/v101/jw-0801-pluto_arch.jpg">
            <img src="../../images/v101/jw-0801-pluto_arch.jpg"
                 alt="Pluto Architecture" width="500"/></a></p>
        <p><b><i><font size="-1">Figure 2. The portlet container's architecture. Click on the picture to enlarge it</font></i></b></p>
   </div>
   </blockquote>	   
</p>
<p><strong>Portlet Deployment</strong>
   <blockquote>
   The portlet container can leverage the servlet container's functionality, upon 
   which the portlet container is built. To accomplish that, the portlet container 
   must inject servlet artifacts into each portlet-application war file, as Figure 
   3 shows. The portlet component, Deployment, takes the original war file, then 
   injects a new or modified web.xml and a servlet to wrap each portlet and uses 
   it as a calling point. Then the portlet deployment passes the modified war 
   file to the application server deployment, which deploys it into the 
   application server's system. During the portlet's invocation, the portlet 
   container calls the injected servlet as an entrance point into the deployed 
   portlet war file.
   </blockquote>

   <blockquote>
   <div align="center">
       <p><a href="../../images/v101/jw-0801-RI_deploy.jpg">
         <img src="../../images/v101/jw-0801-RI_deploy.jpg"
              alt="Deployment" width="500"/></a></p>
       <p><b><i><font size="-1">Figure 3. Portlet deployment in the RI. Click on thumbnail to view full-size image.</font></i></b></p>
   </div>
   </blockquote>	   
</p>


<p><strong>Pluto and the WSRP standard</strong>
   <blockquote>
   The JSR 168 aligns closely with the Web Services for Remote Portlets (WSRP) standard. 
   Both standards, which emerged at the same time, released open source implementations 
   capable of all necessary functions described in the respective specifications. 
   As a mutual goal, both standards strive to work well together. As a result, 
   the portlet container can run WSRP portlets as a consumer as well as a producer.
   </blockquote>

   <blockquote>
   Pluto must be able to run multiple portlet containers in one portal. Consequently, 
   Pluto's portlet container can be instantiated multiple times and, more importantly,
   it can be instrumented in different ways. Each portlet container, therefore, can 
   use different implementations for SPIs.
   </blockquote>
</p>
</section>
</body>
</document>

