java portlets (jsr-168) sse ustc qing ding. agenda java portlet (jsr 168) wsrp products (only a few...

80
Java Portlets (JSR-168) SSE USTC Qing Ding

Post on 21-Dec-2015

230 views

Category:

Documents


1 download

TRANSCRIPT

Java Portlets(JSR-168)

SSE USTC

Qing Ding

Agenda

Java Portlet (JSR 168) WSRP Products (only a few slides)

– Sun Java Enterprise Systeem Portal Server, Portlet Builder

What is a Portlet?

What is a Portlet?

Java technology based web component Managed by a portal container Generates a piece of markup called “fragmen

t”– Adheres to certain rules such as no <html> tags, f

or instance– Fragment generated by a Portlet aggregates with

that from other Portlets to form a portal page– Fragment generated by a Portlet may vary from o

ne user to another depending on the user configuration

What does JSR-168 define?

Portlet API– Portlet Requests– Preferences– User information– Security– Deployment packaging

Portlet Container– Extension of servlet container

Contract between component and container

What are out-scope of JSR 168?

Aggregation Layout management Page personalization and configuration

engines Portal administration and configuration

Default Desktop

Portal/Portlet Architecture

Portal and Portlet Interaction

Why Portlet?

(Why can't we use Servlet?)

Why Portlets?

Servlet architecture does not define the Desktop metaphor where markup aggregation can occur

Servlet architecture does not define the possible states and transitions of an included Servlet or JSP

Servlet architecture does not define how the state of one Servlet or JSP affects the display of the other included Servlets or JSPs

Why Portlets?

Servlet architecture does not define a personalization interface nor the idea of persisting the personalization information

Servlet architecture does not define URLrewriting functions to allow the creation of links and actions targeted to a specific form within the fragment of a page (Portlet markup fragment)

Servlet architecture does not support caching scheme of fragments

Portlet Architecture

Portal ArchitectureWith JSR 168 Support

Portal

A “specialized” web application that provides value-added services such as– Personalization– Single Sign-On– Content aggregation from various sources– Secure search facilities– Localization of content

A Portal “page” represents a complete markup document consisting of several Portlet components

Portlet Container

Portlets are deployed in a Portlet container such that container can– Provides runtime environment for Portlets– Manage life cycle of Portlets– Provide persistent storage for storing Portlet prefe

rences– Cache the portlets– Receive requests from the portal to execute reque

sts on the portlet Not responsible for contents aggregation

Portlet vs. Servlet

(Portlet is built over

Servlet Architecture)

Similarity with Servlet

Both are Java technology based web components

Life-cycle is managed by a specialized container– Servlet by servlet container– Portlet by portlet container

Both generate dynamic content Both interact with web client via a request/res

ponse paradigm

Deployment model Classloading Packaging and deployment Lifecycle management Session management Request dispatching

Differences from Servlet

Portlets only generate markup fragments, not complete documents

Portlets are not directly bound to a URL Web clients interact with portlets through a portal sys

tem Portlets have a more refined request handling

– action requests and render requests

Portlets have predefined states– portlet modes and window states

Portlets can exist many times in a portal page

Extra Features of Portlets

Portlets have means for accessing and storing persistent configuration and customization data

Portlets have access to user profile information Portlets have URL rewriting functions for creating hy

perlinks within their content– allow portal server agnostic creation of links and actions in

page fragments Portlets can store transient data in the portlet sessio

n in two different scopes– application-wide scope– the portlet private scope

Servlet Features Forbidden to Portlets

Setting the character set encoding of the response

Setting HTTP headers on the response The URL of the client request to the portal

Servlet Features that are leveraged by Portlets

Portlets can leverage servlets, JSPs and JSP tag-libraries for generating content– Content should be markup fragment

A portlet can call servlets and JSPs using a request dispatcher

Integration between the two

Attributes set in the portlet request are available in the included servlet request

Attributes set in the portlet session are accessible from the servlet session and vice versa

Portlet and the included servlet or JSP share the same output stream

Portlet and

Web App. Frameworks

Struts/JSF are built over ServletsStruts/JSF can be built over Portlets

– APIs exposed to Struts/JSF developers should remain the same

– Struts/JSF developers must be aware of the markup fragment he has to produce

The markup fragment must follow the rulesGenerate Portlet URL

Exo Portal Build on JSF, Struts

Portlet Modes &

Windows State

Portlet Modes

Indicates function that a portlet performs– Execute different tasks and generate different con

tent based on the function they perform Portals must support three modes

– VIEW Portlet renders markup fragment in this mode

– EDIT Used to change per-user settings to customize renderin

g

– HELP Used to display help information

Portlet Modes (Contd.)

Portals might support other custom modes– ABOUT– CONFIG– EDIT_DEFAULTS– PREVIEW– PRINT

Portals might support other vendor specific modes

Windows State

Is an indicator of the amount of portal page space that will be assigned to the content generated by a portlet

Provided by portlet container Three states

– NORMAL– MAXIMIZED– MINIMIZED

Custom states are possible

Portlet Features

Portlet Persistence

Portlets can store persistent data for a given user in a PortletPreferences object

Preferences are read-write in the action phase (processAction()) and read-only in render phase

Usually user preferences are modified in EDIT mode

User Profile Attributes

Can store information about user that can be used to personalize content for that user

User profile information is represented as a USER_INFO structure which is then mapped to the real information in datastore

Portlet defines the attributes it wants to access in the deployment descriptor

Portal context

Can provide information on– Portal vendor– Version

Used by portlets to find out more information about additional extensions supported by Portal

Security

Authentication is left to the underlying servlet container

Authorization– Follows J2EE ‘roles’ model– Supports programmatic role checking

Session Management

Facade on top of the HttpSession Two scopes: APPLICATION & PORTLET

– PORTLET is a convenience namespacing– It’s common for portlets to appear more than once

in a page (i.e.: EU-News, US-News)

Servlets, JSPs and Portlets within a Portlet Application share the same session

Session creation event notification is supported

Portlet Request Dispatcher

Portlets can include Servlets, JSPs and static content during a render request

Similar to Servlet’s RequestDispatcher

Localization

Portlets can be localized by using resource bundles

Resource bundles are specified in deployment descriptor

Portlet can access resource bundle via PortletContext.getResourceBundle() API

Caching

Expiration based cachingDeclarative caching

– Specify <expiration-cache> element in deployment descriptor for the portlet

Programmatic caching– Modify EXPIRATION_CACHE property of r

ender response

Portlet URL

Portlets are always accessed through a Portal

Portlets do not have a direct URL mapping Portlet URLs allow Portlets to create URLs th

at target to themselves (through the Portal end-point)

Portlet API's

Portlet Life Cycle

GenericPortlet class

Implements Portlet interface Render()--like service() in servlets, calls spec

ified render methods based on Portlet mode– doView() for View mode– doEdit() for Edit mode– doHelp() for Help mode

Is extended by portlet developers– Override render methods as necessary

DoView()

DoEdit()

ProcessAction()

Other Interfaces/Classes

PortletConfig, PortletContext,PortalContext,PortletSession

PortletPreferences interface WindowState (MINIMIZED,

NORMAL & MAXIMIZED) PortletMode (VIEW, EDIT & HELP) PortletURL PortletRequestDispatcher Portlet Tag Library

PortletPreferences

Persistent read/write Portlet configuration– getValues(), setValues() to access PortletPreferenc

es– May modify attributes and store() in persistence dur

ing processAction() Normally, portlet preferences are per portlet/pe

r user Persistency is managed by the portletcontainer Default values are defined in the portlet.xml de

ployment descriptor

Portlet Example – portlet class

Packaging &

Deployment

Portlet Web Application

All resources, portlets, deployment descriptors are packaged in one web application archive (WAR file)

PortletApp\– jsp– htmls– WEB-INF\

web.xml portlet.xml sun-portlet.xml classes\ Lib\

Portlet Example – portlet.xml

WeatherPortlet

Sample Code

WeatherPortlet

WeatherPortlet (1 of 7)

WeatherPortlet (2 of 7)

WeatherPortlet (3 of 7)

WeatherPortlet (4 of 7)

WeatherPortlet (5 of 7)

WeatherPortlet (6 of 7)

portlet.xml

WSRP

(Web Services for

Remote Portlet)

WSRP Value Proposition

Provides protocols and metadata for– Presentation-oriented Web services– Meant for aggregation and syndication with no pro

gramming on the consumer side

Roles– WSRP Producers (Web service provider)– WSRP Consumers (Web service consumer)

Portal ArchitectureWith WSRP Support

JSR168 and WSRP

They were designed in collaboration mode Their functionality is fully aligned

Portlet:Portlet.processAction()

WSRP: WSRP.performBlockingInteraction()

Portlet: Portlet.render()

WSRP: WSRP.getMarkup()

Sun Java SystemPortal Server

Integrated CommunicationsDesktop and Wireless Access

Personalization

Modify any aspect of the desktop (as allowed by the Administrator)

Add or delete portlets– Customize the desktop layout– Use or create personalized themes– Modify or create multiple tabs– Update user profile information– Modify portlets settings and properties

Sun Java System Portal Server andPortal standards

Sun Java System Portal Server supports JSR 168

WSRP will be supported in the first Sun Java System update

Sun Java SystemPortal Server Architecture

How do JSR168 and WSRP fit in ?

Sun ONE Portal Server withJSR 168 and integration to EIS

Sun Java Studio

Portlet Builder

Portlet Builder

Portlet development plug-in for Sun JavaTM Studio

Easy development– It has wizards– It creates and updates the portlet.xml

Supports portlets execution, debugging and deployment within the Studio IDE

Runs in Sun JavaTM Studio 4.x and 5.x

Resources

Resources

JSR 168– http://www.jcp.org/jsr/detail/168.jsp

SunTM ONE Portal Server– http://wwws.sun.com/software/products/portal_srvr/home_p

ortal.html Sun ONE Portlet Builder

– http://wwws.sun.com/software/download/products/3f187b02.html

WSRP @ OASIS– http://www.oasis-open.org/committees/wsrp/

WSRP @ XML Cover Pages– http://xml.coverpages.org/wsrp.html