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
|
|