We had very good discussions about the Portlet API for
future versions of JetSpeed. I think that we should start
to compose a requirements list to gather the requirements
for the API, listing a description and rationale for each
requirement.

I volunteer to put together a Portlet API Requirements
List that we can put on the web site. Please post your
requirements to the JetSpeed list with the topic
"Portlet API Requirements", and I'll include them in the
document.

I'm looking forward to your input :)

--------------------------------------------------------

(my input)

- The Portlet API should be a generic API that does
  not expose JetSpeed intrinsics or components used by
  JetSpeed.

  Rationale: This allows to implement the Portlet API on
  different bases, which is necessary to give the
  Portlet API the potential to become a standard.

- The Portlet API should clearly separate data that
  exists per portal, per portlet, per user, per-user and
  per-portlet, per user session or per request.

  Rationale: This is required to implement the API and
  portlets that use it in a scalable and thread-safe way.

- The Portlet API should be similar to the Servlet API
  - Portlet similar to Servlet
  - PortletConfig similar to ServletConfig
  - PortletContext similar to ServletContext
  - PortletRequest/Response similar to ServletRequest/
    Response
  - ...

  Rationale: This will give all programmers who know
  servlets a quick start and lead to good acceptance of
  the API, increasing chances that it becomes a standard.

- The Portlet API should allow for definition of service
  interfaces and for registration of services implementing
  particular service interfaces, e.g.
  - User info (for getting user info like name, address, age...)
  - Persistence (for storing per-user, per-portlet settings)
  - Location (for obtaining the user's location)
  - Personalization (for storing/getting personalization info)
  - Data (access to databases, schema-to-object mappings)
  - Content (access to syndicated content)
  - Cache (access to URLs via caches)
  - ...

  Rationale: This allows to have a stable API core that can
  be extended by services as required. Portals implementing
  the Portlet API can provide implementations for a subset
  of the services defined in the Portlet API.

- The Portlet API should be flexible enough to allow for
  rendering using different technologies (e.g. JSPs, XML/XSL...)
  as well as different mark-up (e.g. XML, WML, XHTML, HTML,
  VoiceXML, ...).

  Rationale: This allows to implement portlets that can
  support various devices, either by doing final rendering
  or by producing XML that can be further processed.

- The Portlet API should provide abstract base classes for
  portlets.

  Rationale: This allows for quick implementation of portlets
  by only overwriting the relevant methods.

Best regards,

Thomas

Thomas Schaeck
IBM Pervasive Computing Division
Phone: +49-(0)7031-16-3479  e-mail: [EMAIL PROTECTED]
Address: IBM Deutschland Entwicklung GmbH,
Schoenaicher Str. 220, 71032 Boeblingen, Germany




--
--------------------------------------------------------------
Please read the FAQ! <http://java.apache.org/faq/>
To subscribe:        [EMAIL PROTECTED]
To unsubscribe:      [EMAIL PROTECTED]
Archives and Other:  <http://marc.theaimsgroup.com/?l=jetspeed>
Problems?:           [EMAIL PROTECTED]

Reply via email to