WebSphere Portal v8 Programming

Course Description

This five day training class teaches students WebSphere Portal development using JSR 286 portlet API. The JSR 286 API is a major revision of the portlet specification and contains significant improvements. The class also covers JavaServer Faces based portal site development and using Dojo and AJAX with portlets. All labs are done using Rational Application Developer (RAD) 8.5.
5 days
Contact us for pricing
 

Prerequisites

Students should have intermediate knowledge of Java development using Rational Application Developer. Knowledge of Servlet and JSP is strongly recommended.

Audience

Programmers who will be developing applications for WebSphere Portal Server v8. This class can also be delivered at previous versions if required.

At the end of this course, students will be able to

Install and use the latest Portal Toolkit
Understand the JSR 286 portlet programming model
Use the Rational Application Developer (RAD) 8.5 based Portal Toolkit to build portal applications
Develop cooperative portlets to share data
Develop portlets using Struts and JavaServer Faces (JSF)
Use AJAX in a portlet
Provide and consume portlets using Web Services for Remote Portlets (WSRP)

Topics

Introduction to WebSphere Portal, key concepts and benefits
Portal programming model
Detail coverage of the JSR 286 API
Introduction to Portal Toolkit
Struts based portlet development
JavaServer Faces (JSF) based portlet development
AJAX
Using Dojo in portlets on WebSphere Portal
Web Services for Remote Portlets

INTRODUCTION TO WEBSPHERE PORTAL SERVER

What is a Portal
An Example of a WebSphere Portal Site
General Portal Architecture
WebSphere Portal Products
A Typical Network Architecture for WebSphere Portal
WebSphere Portal Server
WebSphere Portal Server Architecture
Page Aggregation Modules
Portlet
WebSphere Portal Built-in Portlets
Portlet Application
Portlet Mode and State
WebSphere Portal Information
Java Portlet Specification 1.0 (JSR-168)
Java Portlet Specification 2.0 (JSR-286)
Portlet Security Overview
Portal Access Control
Portal User Management
Credential Vault Service
Best Practices For Development

PORTLET DEVELOPMENT USING RATIONAL APPLICATION DEVELOPER 8.5

The RAD 8.5 Product
Portlet Development Support
RAD 8.5 Installation
Portal Server 8.0 Installation
Basic Steps in Portlet Development
Project Structure
Portlet Project
Create a Project Structure
portlet.xml Editor
Create a Test Portal Server
Managing the Server
Unit Testing
Export Portlet Application

INTRODUCTION TO JSR 286 BASED PORTAL PROGRAMMING

What is JSR 286?
Relationship With Java SE and Java EE
Comparing Portlets with Servlets
A Portal Site
Portlet
Portlet Application
The portlet.xml File
Portlet Definition in portlet.xml
Portlet Container
Portlet Window

BASIC PORTLET PROGRAMMING

Model-View-Controller in Portlet Application
The Portlet Interface
The Hello World Portlet
Portlet Lifecycle - Initialization
Portlet Lifecycle Request Handling
Two Phase Request Processing
Two Phase Request Processing Architecture
The render Method
The PortletRequest Interface
The PortletResponse Interface
The RenderResponse Interface
PortletURL
PortletURL Example
The processAction Method
The ActionRequest Interface
Example: Handling Form Submission
The ActionResponse Interface
Example Use of Render Parameters
Dealing With Browser History
The GenericPortlet Class
User Session Management
Using the Session
Relationship of PortletSession with HttpSession
Session Usage Example
End of Portlet Life
Portlet Configuration
Initialization Parameters
Portlet Context
Invoking the View Layer
Controller Logic Implementation Techniques

PORTLET PREFERENCES

Portlet Preferences
Portlet Preferences API
Example: Reading Preferences
Updating Portlet Preferences
Example: Updating Preference
Validating Preference Update
Example Validator Class

DISPLAY GENERATION

Techniques in View Development
PortletRequestDispatcher include/forward Details
JSR 286 Tags
The defineObjects Tag
Example defineObjects Usage
The actionURL Tag
The renderURL Tag
The param Tag
The namespace Tag
National Language Support
Resource Bundle File
Displaying Translated Text
Portlet Resource Bundle
Providing Locale Specific Preference Defaults

ADVANCED PROGRAMMING TOPICS

JSR 286 Annotations
@RenderMode
@ProcessAction Annotation
Setting the Action Name in URL
Portlet Caching
Basic Caching Setup
Programmatic Cache Control
Validation Based Caching
Validation Caching API
Example Validation Control

PORTLET SERVICES

Portlet Services
Writing a Portlet Service
Defining the Portlet Service Interface
Example - AccountService
Writing the Portlet Service Implementation
java.util.prefs.Preferences
Example AccountServiceImpl
Registering Portlet Services
WAS Admin Console PortletServiceRegistryService
Using a Service from a Portlet
Example Using a Service
Content Access Service

CREDENTIAL VAULT

Credential Vault
Credential
Components of Credential Vault
Structure of the Credential Vault
Slot
Slot Scope
Credential Access Level
Single Sign-on Scenario
CredentialSlotConfig
CredentialVaultService
CredentialVaultService Interface Methods
Example - Looking Up CredentialVaultService
Example � Create a Slot
Saving Credential in a Slot
Credential Class
Classes that Implement the Credential Interface
PassiveCredential
UserPasswordPassiveCredential
Example � Using a PassiveCredential
ActiveCredential
HttpFormBasedAuthCredential
Example � Using HttpFormBasedAuthCredential

PORTLET COMMUNICATION OVERVIEW

Portlet Communication Techniques
Comparison of Portlet Communication Techniques
Which Portlet Communication Technique Should I Use?

PORTLET EVENT

Portlet Events
Event Architecture
Example Use Case
Event Flow Sequence
Sequence Diagram
Defining an Event in portlet.xml
Using Default Namespace
Creating the Payload Class
Publishing an Event
Consuming an Event
The @ProcessEvent Annotation
Details about @ProcessAction
Additional Notes About Events

PUBLIC RENDER PARAMETER

Public Render Parameters
Example Use Case
Steps to Using Public Render Parameters
Define Public Render Parameter in portlet.xml
Declare Public Render Parameter for a Portlet
Setting Value of a Public Render Parameter
Example Setting Public Render Parameter
Getting Value of a Public Render Parameter
Additional API

CLIENT-SIDE CLICK-TO-ACTION PORTLET COMMUNICATION

Client-side Click-to-Action ("Live Text")
Example Use Case
Specify a Live Text Source
Specify a Live Text Source Example
Specify a Live Text Target
Specify a Live Text Target - Example
Using RAD 8.5 to Set up Client-side Click-to-Action
Insert a Client-side Click-to-Action Output Property
Insert a Client-side Click-to-Action Input Property
Insert a Client-side Click-to-Action Menu Header
Looking Underneath the Hood

INTRODUCTION TO JAVASERVER FACES

What is JavaServer Faces (JSF)?
Why Use JSF?
Nature of a JSF Application
The Sun Reference Implementation (RI)
JSF and MVC
Faces Servlet
Managed Bean
The View
A Simple JSF Application
The Input Form: form.jsp
The Result: thanks.jsp
The Controller: AddressBean
Page Flow or Navigation Rule
How Does the Application Work?
Under the Covers: The Rendered Form HTML
Under the Covers: The Layout Tree
Creating a JSF Portlet
Navigation State Management
Advanced: Obtaining Core JSF Objects

USING AJAX IN A PORTLET

What is AJAX?
A Simple Example
The Old Way
The AJAX Way
Two Key Aspects of AJAX
Advantages of the AJAX Approach
The Basic AJAX API
Creating the XMLHttpRequest Object
The XMLHttpRequest Object Basics
Complete Example
The Timeline
Using AJAX from a Portlet
JSR-286 and AJAX
The ResourceServingPortlet Interface
Output From serveResource()
ResourceURL
AJAX Request Timeline
Steps to be Taken by a Portlet
A Complete Example
The View JSP
The Portlet Class

THE DOJO TOOLKIT

Introduction
Installation
Dojo Capabilities
Simple Example Tab Widget
How Does DOJO Work?
Importing Packages
Widget Basics
Widget Layout Example
The Two byId() Methods
Widget Properties
Widget Events
Common Features of Widgets
Form Input Widgets
The Button Widget
The Checkbox Widget
The ComboBox Widget
The FilteringSelect Widget
The DateTextBox Widget
Layout Widgets
Other Common GUI Widgets
Creating Widget Instances Programmatically
Creating Widgets Programmatically

USING DOJO IN WEBSPHERE PORTAL 8.0

Dojo and AJAX Portlets
Dojo Versions in WebSphere Portal 8.0
Dojo Support in RAD 8.5

IWIDGET PORTLET

Introduction to iWidget
iWidget Portlets
Anatomy of an iWidget
Creating an iWidget
The iWidget Editor
Developing the Business Logic
Lifecycle Callback Methods
Firing an Event
Consuming an Event

WEB SERVICES FOR REMOTE PORTLETS

Remote Portlets
WSRP
WSRP Terminology
WSRP Benefits
WSRP Architecture
Information Artifacts
Security Issues
JSR-286 and WSRP 2.0
Pre-defined Container Events

PORTLET BUILD AND DEPLOYMENT PROCESS

Introduction
Overview of the Build Process
The Build Process
Installing a Portlet Web Module
How is a Portlet Web Module Installed?
Deploying Portlets Within an EAR
Managing Portlet Web Modules
Managing Portlet Applications
Managing Portlets
Adding a Portlet to a Page
Configuring a Portlet
Copying a Portlet Application
Copy a Portlet
Removing a Portlet From a Page
Uninstalling a Portlet Application

PORTAL DEVELOPMENT BEST PRACTICES

Architecture Best Practices
Controller (Portlet) Guidelines
View (JSP) Guidelines
Configuration Management
Session Management
Security Guidelines
Java Performance Tips
Portlet Performance Tips
Performance Testing Guidelines

WebSphere