WA1314 Mastering Portal Programming v5.1 on RAD 6 Training and Courseware Course Outline

0. Introductions and Agenda

  • Course Overview
  • Course Overview – cont’
  • Course Objectives
  • Agenda – Day 1
  • Agenda – Day 2
  • Agenda – Day 3
  • Agenda – Day 4
  • Agenda – Day 5
  • Prerequisites
  • Environment
  • Student Introductions
 

1. Introduction to the WebSphere Portal Server

  • Topics
  • What is a Portal
  • An Example of WebSphere Portal Sites
  • Benefits of Portal Sites
  • General Portal Architecture
  • The Major Components of Horizontal Portals
  • The Major Components of Horizontal Portals – cont’
  • WebSphere Portal Goals
  • WebSphere Portal Components
  • WebSphere Portal Components – cont’
  • WebSphere Portal Accessibility
  • WebSphere Portal Packaging
  • WebSphere Portal Express
  • WebSphere Portal Enable
  • A Typical Network Architecture for WebSphere Portal
  • WebSphere Business Integration Server Foundation 5.1.1
  • WebSphere Portal Server
  • WebSphere Portal Server Architecture
  • Portal Container
  • Portal Engine Architecture
  • Page Aggregation Modules
  • Portlet
  • WebSphere Portal Built-in Portlets
  • Portlet Application
  • Portlet Mode and State
  • WebSphere Portlet Content Publishing (WPCP)
  • Portal Document Manager (PDM)
  • Search Engine
  • WebSphere Portal Information
  • Summary
 

2. Introduction to J2EE

  • Topics
  • Enterprise Web Applications
  • J2EE Architecture
  • Model View Controller
  • Model
  • View
  • Controller
  • What is a Servlet?
  • Servlet Container
  • Servlet Responsibilities
  • J2EE and Servlets
  • The Servlet Class
  • An Example – Hello World
  • Life Cycle – Initialization
  • Life Cycle – Initialization (cont.)
  • Example Initialization
  • Life Cycle – Processing
  • Life Cycle – Destroy
  • User Input
  • Example – User Input
  • Output to Client
  • Example – Output to Client
  • JavaServer Pages
  • A Simple Example - Hello.jsp
  • How JSP Works
  • JSP Invocation
  • JSP Scripting Elements
  • JSP Directive
  • Directives – include
  • Include – an Example
  • JSP Declarations
  • Declarations – an Example
  • JSP Expressions
  • JSP Expressions – an Example
  • JSP Scriptlets
  • JSP Scriptlets – an Example
  • JSP Scriptlets – an Example (cont.)
  • JSP Predefined Variables
  • The request Object
  • The response Object
  • The out Object
  • Out – an Example
  • What is JDBC?
  • JDBC Architecture
  • JDBC: Basic Steps
  • Loading a Driver
  • DB2 UDB JDBC Drivers
  • Oracle JDBC Drivers
  • Create a Connection
  • Connection
  • Statement
  • PreparedStatement
  • ResultSet
  • ResultSet…
  • Example JDBC Servlet With Transactions
  • Close the Connection
  • Need for Connection Pooling
  • Connection Pooling in JDBC 2.0
  • Connection Pooling
  • Basic Steps in Using JDBC Connection Pooling
  • Access a DataSource
  • Get a Connection
  • Release Connections
  • Connection Pool Example
  • Creating a Data Source with RAD
  • Integrating Servlet and JSP
  • Calling a JSP from a Servlet
  • Request Dispatching - forward Request to JSP
  • Supply Result information to the JSP
  • A Simple Example
  • Display JavaBean Properties in JSP
  • Summary
 

3. Introduction to Portal Programming

  • Topics
  • Terminologies
  • Portlet Instance Types
  • Portlet Instance Types (cont.)
  • Instance Type Summary
  • Portlet Applications and Concrete Portlet Applications
  • Portlet Modes
  • Example of Using Edit Mode
  • Portlet Mode - Advanced
  • Portlet Window States
  • Portlets vs. Servlets
  • Portlet Deployment Descriptors
  • portlet.xml
  • portlet.xml – cont’
  • Relationship between web.xml and portlet.xml
  • Example web.xml
  • Relationship between Portlet and Concrete Portlet
  • Summary
 

4. Portlet Development Using Rational Application Developer v6

  • Objectives
  • The WebSphere Family
  • Eclipse Platform
  • The WebSphere Studio Product Family
  • Rational Web Developer
  • Rational Application Developer
  • Key Features in RAD v6.0
  • WebSphere Studio Application Developer Integration Edition
  • WebSphere Studio Enterprise Developer
  • Views, Perspective and Editor Areas
  • Basic Operations with RAD Views and Perspectives
  • The Java Perspective
  • The Debug Perspective
  • Navigator View
  • Package Explorer
  • Outline View
  • Task View
  • Build and Validation
  • Import and Export Project
  • Templates and Code Completion
  • Searching
  • Setup Compiler Class Path
  • JRE Switching
  • Portal Development Support
  • RAD 6 Installation
  • Portal Server v5.1 Test Runtime Installation
  • Configure Portal Server Test Runtime
  • Basic Steps in Development
  • Project Structure
  • Portlet Project
  • Create a Project Structure
  • Working With the Project
  • portlet.xml Editor
  • Creating a Test Server
  • Managing the Server
  • Unit Testing
  • Export Portlet Application
 

5. Basic Portal Programming

  • Topics
  • Design Pattern of Portlet Applications – Model-View-Controller
  • More on MVC
  • Two Phase Request Processing
  • The Portlet API
  • The Portlet Class
  • Portlet Life-cycle methods
  • The Initialization Methods
  • The service Method
  • The login/out Methods
  • The PortletAdapter Class
  • PortletAdapter Class – cont’
  • Example – Hello World Portlet
  • Example – Hello World Portlet – cont’
  • Creating a Portlet
  • Code Generation Option
  • Portlet Core Objects
  • PortletRequest
  • Methods of PortletRequest
  • Methods of PortletRequest – cont’
  • PortletResponse
  • Methods of PortletResponse
  • Methods of PortletResponse – cont’
  • PortletURI
  • Methods of PortletURI
  • Techniques for Using PortletURI
  • Example – Creating PortletURI
  • Example – JSP Using PortletURI
  • PortletSession
  • Methods of PortletSession
  • Example – Using Portlet Core Objects
  • Portlet Listeners
  • PortletSessionListener
  • PortletPageListener
  • PortletTitleListener
  • Example - Using Portlet Listeners
  • Example - Using Portlet Listeners – cont’
  • Portlet Configuration Objects
  • PortletContext
  • Methods of PortletContext
  • Methods of PortletContext – cont’
  • Example – - Using PortletContext
  • PortletConfig
  • Methods of PortletConfig
  • PortletSettings
  • Methods of PortletSettings
  • PortletApplicationSettings
  • Methods of PortletApplicationSettings
  • PortletData
  • Methods of PortletData
  • Example – Using PortletData
  • Example – Using PortletData – cont’
  • Other Portlet Objects
  • PortletLog
  • Methods of PortletLog
  • Configure Logging Behavior
  • Logging Example
  • PortletWindow
  • Methods of PortletWindow
  • Example – Using PortletWindow
  • User
  • Methods of User
  • Methods of User – cont’
  • Portlet API Overview
 

6. Advanced Display Generation

  • Topics
  • JSP Custom Tags
  • Why Use JSP Custom Tags
  • Portal Custom Tags
  • portletAPI tags
  • <portletAPI:init />
  • Basic Controller to View Interaction
  • <portletAPI:if />
  • <portletAPI:log />
  • <portletAPI:dataLoop /> <portletAPI:dataAttribute />
  • <portletAPI:settingsLoop /> <portletAPI:settingsAttribute />
  • <portletAPI:createReturnURI /> <portletAPI:createURI />
  • <portletAPI:URIParameter />
  • <portletAPI:URIAction />
  • <portletAPI:encodeNamespace/>
  • Example of Using portletAPI Tags
  • Example of Using portletAPI Tags –cont’
  • National Language Support
  • Static Translation
  • Dynamic Translation
  • Resource Bundle File
  • Displaying Translated Text
  • More on JSTL Internationalization Tags
  • Example of Using Resource Bundles
  • Multiple Device Support
  • XML Transcoding
 

7. Advanced Portal Programming

  • Topics
  • Portlet Event Handling
  • Portlet API for Event Handling
  • Action Events
  • The ActionEvent Interface
  • The ActionListener Interface
  • The PortletURI Object
  • Example Action Event Handling
  • Example Action Event Handling (cont.)
  • Example JSP Using the Action URI
  • Inter Portlet Messaging
  • MessageEvent
  • PortletMessage
  • Message Sender
  • MessageListener
  • Example of Using Message Event
  • Example of Using Message Event – cont’
  • WindowEvent
  • WindowListener
  • Example of Using the Window Event
  • Portlet Caching
  • Enabling Servlet Caching
  • Programmatically Control Cache
  • Example: Cache Control
  • Portlet Services
  • Writing a Portlet Service
  • Defining the Portlet Service Interface
  • Example - AccountService
  • Writing the Portlet Service Implementation
  • java.util.prefs.Preferences
  • Example - AccountServiceImpl
  • Example - AccountServiceImpl - cont’
  • Writing the Portlet Service factory
  • Example - AccountServiceFactory
  • Registering Portlet Services
  • Example - PortletServiceRegistryService.properties
  • Using a Service from a Portlet
  • Content Access Service
 

8. 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
  • Methods of CredentialSlotConfig
  • CredentialVaultService
  • CredentialVaultService Interface Methods
  • Methods of the CredentialVaultService -cont’
  • Example - Looking Up CredentialVaultService
  • Example – Create a Slot
  • Saving Credential in a Slot
  • Credential Class
  • Classes that Implement the Credential Interface
  • Example – Retrieve the Credential
  • PassiveCredential
  • UserPasswordPassiveCredential
  • ActiveCredential
  • ActiveCredential - cont’
  • HttpFormBasedAuthCredential
  • HttpFormBasedAuthCredential - cont’
  • Example - Using HttpFormBasedAuthCredential
 

9. Cooperative Portlets

  • Topics
  • Cooperative Portlets
  • Basic Concepts
  • Example of Click-to-Action
  • Runtime Architecture of Click-to-Action
  • Portlet Wrapper Class
  • Enable C2A in Portlet Applications
  • Creating Cooperative Portlets
  • Development Steps
  • C2A JSP Tags
  • Scattering
  • Scattering: C2A JSP Tags
  • Example of C2A Source JSP
  • Example of C2A Source JSP - cont’
  • Understanding the WSDL File
  • Example of Target Action Descriptor WSDL
  • Example of Target Action Descriptor - cont’
  • Example of C2A web.xml
  • Example of C2A portlet.xml
  • Example of a Target Portlet
  • Wiring
  • Summary
 

10. Struts and JSF Portlet Development

  • Introduction to Struts
  • Struts and Portlet API Mismatch
  • Customizing Struts
  • The Portal Struts Servlet
  • Portal Struts Processor Class
  • Generating Portlet URI
  • The Response Object
  • Action Processing
  • Display Rendering
  • Default Display Page
  • Getting the Portlet Objects
  • Struts Logging
  • Creating a Struts Portlet Project
  • JavaServer Faces (JSF) Basics
  • Defining the Screen Layout
  • Managed Bean
  • Assigning the Model
  • HTTP Request Handling
  • Navigation
  • Advantage of JSF
  • Creating a JSF Portlet
  • Creating a JSF Portlet …
  • Navigation State Management
  • Advanced: Obtaining Core Objects
  • Advanced: Sending a Message to a JSF Portlet
 

11. Themes and Skins

  • Topics
  • Elements of a Portal Site
  • Page and Label
  • Page/Label Hierarchy
  • URL
  • Theme
  • Screen
  • The Home Screen
  • Skin
  • Container
  • How is a Page Rendered?
  • Directory Structure of Themes & Skins
  • Creating a New Theme
  • Creating a New Skin
  • Custom JSP Tags
  • wps Tags for Rendering Portal Page Components
  • wps:if tag for Checking Conditions
  • Navigating Page Hierarchy
  • wps Tags for Locating Portal Resources
  • wps Tags for Generating a Portal URL
  • wps Tags for Generating a Portal URL - cont’
  • wps Tags for Rendering portlet control icons
  • wps Tags for Rendering portlet control icons - cont’
  • The Default.jsp
  • Snippets from a Default.jsp
  • The Control.jsp
  • A Typical Layout of HTML Skins
  • Snippets from a Control.jsp
  • Summary
 

12. WebSphere Portal Server Administration

  • Topics
  • WebSphere Portal Administration
  • Enabling Administration in RAD6
  • Installing a Portlet Web Module
  • How is a Portlet Web Module Installed?
  • Managing Applications
  • Managing Applications…
  • Managing Portlets
  • Managing the Layout
  • Common Layout Tasks
  • Introduction to xmlaccess
  • Running xmlaccess
  • Example Input File
  • Basic Syntax
  • Export Example
  • Deleting Users
  • Symbolic Reference
  • Example Symbolic Reference
  • Example…
  • Guidelines
 

13. Portal Development Best Practices

  • Topics
  • Architecture Best Practices
  • Controller (Portlet) Guidelines
  • View (JSP) Guidelines
  • Configuration Management
  • Session Management
  • Inter Portlet Messaging
  • Security Guidelines
  • Performance Tips
  • Performance Testing Guidelines
  • Summary
 

Appendix A. JSR 168 Overview

  • What is JSR 168
  • Relationship With J2EE
  • Relationship With Servlets
  • A Portal Site
  • Request Handling
  • Modes and States
  • Developing a Portlet
  • Example portlet.xml
  • The Portlet Interface Overview
  • Portlet Initialization
  • The PortletConfig Object
  • Action Processing
  • The ActionRequest Interface
  • The ActionResponse Interface
  • Example Action Processing
  • Display Generation
  • The RenderRequest Interface
  • The RenderResponse Interface
  • The GenericPortlet Class
  • Including a JSP File
  • Example Display Generation
  • Developing the View
  • JSP Tags
  • JSP Example
  • Creating JSR 168 Portlets in RAD6
 

Appendix B. Migrating a Web Application to WebSphere Portal

  • Motivations Behind Migration
  • Typical Goals
  • Migration Technique
  • Key Effort Areas
  • Keeping the Look and Feel
  • Request Handling
  • Splitting the Role of a Servlet
  • Dispatching Action Event
  • Dispatching Display Generation Request
  • Migrating JSP Pages