Date post: | 21-Dec-2015 |
Category: |
Documents |
View: | 231 times |
Download: | 1 times |
Agenda
Java Portlet (JSR 168) WSRP Products (only a few slides)
– Sun Java Enterprise Systeem Portal Server, Portlet Builder
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
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
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
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
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
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 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)
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
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 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\
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)
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()
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
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
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