WebSphere Portal Technologies - New York University

groupertomatoInternet and Web Development

Jul 30, 2012 (5 years and 2 months ago)

392 views

1
WebSphere Portal, Portlets and Web Services
June 2002
Peter Fischer
Developer, WebSphere Portal Server
Portal Architecture
Introduction
2
3
What are Portals ?
 Common access point to distributed information and
applications
 Typical Functions:

User registration

Authentication and Authorization

Pluggable portal components: Portlets

Personalization based on profiles / behavior

Customization of pages by users

Search

Content Management
4

Example of a Portal View
3
5
Local
Portlet
Local
Portlet
Major Functional Components
Portlet Container
SOAP
Aggregation
Customization
User Registration/
Selfcare
Authentication
Authorization
Local
Portlet
Local
Portlet
Local
Portlet
Remote
Portlet
Remote
Portlet
Remote
Portlet
Remote
Portlet
Remote
Portlet
Web
Services
User
Information
Portlet
Settings
Portlet Inst.
Data
User‘s
Selections
Portlet
Proxy
Portlet
Registry
6
WebSphere Portal Quick Overview
 Multi-Platform: Windows, AIX, Solaris
 Multi-Client: PCs, WAP, iMode
 Multi-Language: Serves different locales concurrently
 Multi-Authentication: Supports most relevant auth proxies
 Provides well-defined Portlet API and portlet auto-deployment
 Many Portlets on the IBM Portlet Marketplace (200+)
 Portlets can exploit WebSphere web service functions
 Supports pluggable, interactive, user-facing web services
 Can publish portlets as web services using admin UI
4
7
Portlet Services
Credential
Vault
Search
Content
Mgmt
Internet
Internet
WebSphere Portal Server Architecture
Portlet API
Aggregation
Modules
(HTML, WML,
VoiceXML, ...)
Remote Portlet
Web Services
SOAP Router
Authentication
Authorization
WebSphere
Portal Server
Data Store
WebSphere
Member
Subsystem
Local
Portlets
Local
Portlets
Local
Portlets
Local
Portlets
Local
Portlets
Portlet
Proxies
Global
UDDI
Directory
Intranet
Intranet
Corporate
UDDI
Directory
J2EE/WebSphere APIs
JCA
Connectors
Enterprise Java
Beans
Message
Beans
Local
Portlets
Local
Portlets
Corporate
Web Services
Local
Portlets
Local
Portlets
Public
Web Services
Web Sphere
Portal Server
Engine
...
Site
Analyzer
PD WebSeal,
WTE Seal,
Netegrity
Siteminder,
WebSphere
Security, or
others via TAI
WPS Database,
Policy Director, or
Netegrity Siteminder
Secure Way LDAP,
Domino LDAP,
Netscape LDAP,
Active Directory,
or WMS DB
WPS DB or Tivoli Policy
Director Vault
Intregrated Local Search (Juru)
Domino Extended Search, EII.
Third Parties
WPS Content Organizer
Content Integration Packs for
Third Parties
DB2 or Oracle
Local
Portlets
Local
Portlets
Public
RPWS Services
Local
Portlets
Local
Portlets
Corporate
RPWS Services
SOAP
SOAP
RPWS / SOAP
Portlets and Portlet API
5
9
Portlets
 Components designed to be aggregated in portals
 Aware of portal context

User profile information

Per-portlet instance data stored by portal

Per-portlet settings managed by portal

Portlet window state (NORMAL, MIN, MAX)

Portlet modes (VIEW, EDIT, CONF, HELP)

Portlet events (action / message events)
 Can be packaged in normal WAR Files with descriptor
extensions
10
Portlet Action Handling and Aggregation
Connectors
Web
Services
Portal
Servlet
Local
Portlet
Local
Portlet
Local
Portlet
Portlet API (Invocation)
Portlet API (context)
Servlet API
J2EE APIs
Portal Infrastructure, User Registry
Persistent and Transient Portal State
EJBs
Action
Portlet Container
6
11
Example of a Stock Quote Portlet
 Stock prices for user-selected list of stock symbols:

VIEW mode shows stock prices:doView method

EDIT mode lets user change stocks:doEdit method

HELP mode explains the portlet: doHelp method

CONFIG mode lets administrator select stock quote source to use:
doConfig method
12
Example of a Portlet
 Portlets are specialized Servlets
public class StocksPortlet extends Portlet {
public void init(PortletConfig config) {
... initialize portlet ...
}
public void doView(PortletRequest req,
PortletResponse rsp)
throws PortletException, IOException {
... generate the portlet view ...
}
public void destroy(PortletConfig config) {
... destroy portlet ...
}
}
7
13
Example of Portlet View Mode
 Use of PortletData, Beans and JSP™components
public void doView(PortletRequest req,
PortletResponse rsp)
throws PortletException, IOException {
// Get stock symbols from portlet instance data
PortletData data = req.getData();
String symb = (String) data.getAttribute("symbols");
..get prices for symbols from stocks service ..
StockBean stockBean = new StockBean();
.. put stock symbol/price pairs in stock bean ..
req.setAttribute("stockBean", stockBean);
getPortletConfig().getContext().include(
"/WEB-INF/ViewStockQuotes.jsp",req,rsp);
}
14
Example of Portlet Edit Mode
 Tie Actions to PortletURLs to process Forms
public void doEdit(PortletRequest req,
PortletResponse rsp)
throws PortletException, IOException {
// Create URI pointing to this portlet instance
// and attach a portlet action
PortletURI saveUri = rsp.createURI();
PortletAction saveAction = new Action(SAVE);
saveUri.addAction(saveAction);
EditListBean editListBean = new EditListBean();
.. put saveURI and other data into the bean ..
req.setAttribute("editListBean", editListBean);
getPortletConfig().getContext().include(
"/WEB-INF/EditSymbolListForm.jsp",req,rsp);
}
8
15
More Information about Portlet Development
 see Portlet Development Guide
available at the portal library
http://www-3.ibm.com/software/webservers/portal/library.html
16
Java Portlet API (JSR 168)
 Defines interaction between portals and portlets
 Defines interfaces for interoperability of portals and portlets
 Based on the Java
TM
Servlet API
 Provides additional abstractions for portal context

user object, persistent data objects, device information, portlet modes, window
states, ...
 Standardization in JSR 168 lead by IBM and Sun
(see http://jcp.org/jsr/detail/168.jsp
)
 A Portlet API reference implementation will be donated to
Apache Open Source Community
9
17
Java Portlet API Supporters
 Accenture
 Apache
 ATG
 BEA
 Boeing
 Borland
 Bowstreet
 Cap Gemini Ernst & Young
 Citrix
 DaimlerChrysler
 Documentum
 Enformia Ltd
 Epicentric
 Fujitsu
 Hewlett-Packard
 Hitachi
 IBM(Spec Lead)
 Interwoven
 Macromedia
 McDonal Bradley
 Plumtree
 SAP Portals
 Silverstream
 Sybase
 Tarantella, Inc
 Vignette
 IONA
 Sun (Spec Lead)
 Computer Associates
 Peoplesoft
 SAS
 Oracle
Portal WebServices
Remote Portlets
10
19
Web Services
 Web services are platform and language independent
 Description of Web services in WSDL
(Web Services Description Language)
 Invocation of Web services via SOAP
(Simple Object Access Protocol)
 Publish & Find through UDDI
(Universal Description, Discovery & Integration)
20
Service Oriented Architecture –
Publish, Find & Bind
Service
Requestor
Service
Provider
Service
Registry
Find
Bind
Publish
11
21
„Traditional“ Web Service Usage Scenario
 Portlets using data-oriented Web services

Different data-oriented Web services expose different interfaces

Specialized UI and proxy code required in specific portlets

Local deployment of code is still necessary
Aggregation
User‘s Client
Portlet 1
(Presentation)
Portlet 2
(Presentation)
Portlet API
Portlet API
Service
Specific
Proxy 1
Service
Specific
Proxy 2
Web Service 1
(Data only,
no Presentation)
WS specific
interface
Web Service 2
(Data only,
no presentation)
WS specific
interface
22
Remote Portlets Web Services
 Generic Proxies using user-facing web services

All RPWS services have a common API

No service specific portlets required

Generic RPWS proxy portlet is implemented
once
and used for all RPWS services
Aggregation
User‘s Client
Portlet API
Portlet API
Generic
Proxy
Generic
Proxy
RPWS Service 1
(includes data and
presentation)
RPWS Service 2
(includes data and
presentation)
SOAP
SOAP
RPWS
API
RPWS
API
Presentation and Interaction Layer
12
23
Publishing Portlets as RPWS Services
Portal 1
Portal 2
Portlet
Proxy
Portal
Administration
Portlet
Registry
Portal
Aggregation
Portlet Proxy Entry
Portal
Administration
Portlet
Registry
Portal
Aggregation
Portlet Entry
Remote
Portlet
Portal 2
RPWS/
SOAP
UDDI
Portlet Entry
Portlet Entry
Portlet Entry
(1) Publish
(2) Find &
Bind
(3) Invoke
24
Remote Portlet Web Services Goals
 Allow interactive, user-facing web services to be easily
plugged into all standards-compliant portals
 Let anybody create and publish their content and
applications as user-facing web services
 Portal administrators browse public or private UDDI
directories for RPWS services to plug into their portals
as new portlets, without any programming effort
 Let portals publish portlets so that they can be
consumed by other portals
 Make the internet a market of visual web services,
waiting to be integrated
13
25
Business Scenario Examples
To plug into portals ...
... Content Providers publish content as RPWS services
(e.g. Stock Quotes, News, Lottery Numbers, Sports Results, Flight
Schedules, ...)
... Application providers expose apps as RPWS services
(e.g. Stock Option Programs, E-Mail, Calendar, CRM, Workflow, Tax
Calculation, Ticket Ordering, Travel Booking,...)
... Portal providers publish local portlets as RPWS services to share
them with other portals
(e.g. a content provider‘s portal might publish its portlets for re-use in
employee portals of different companies)
26
Web Services for Remote Portals (WSRP)
 Standardization taking place in OASIS WSRP TC
Chairman: Thomas Schaeck
 WSRP services are user-facing, interactive web services that may be
aware of portal-side user profile information, devices, locales
 WSRP will standardize:

How to publish, find, and bind to WSRP services

Metainformation for WSRP services (name, supported locales/markups, titles,
and descriptions, ...)

Protocol for interaction between portals and WSRP services
 WSRP Home Page: http://oasis-open.org/committees/wsrp/
 Goal:

WSRP 1.0 Spec and Implementation year end 2002
14
27
Companies who participate in WSRP TC
 BEA
 Bowstreet
 Divine
 Epicentric
 Factiva
 France Telecom
 Fujitsu
 HP
 IBM
 Interwoven
 Lexis-Nexis
 Lotus
 Moravia IT
 Netegrity
 Oracle
 Peoplesoft
 Plumtree
 Silverstream
 Stellent
 Sun
 Sybase
 Tibco
 WebCollage
 SAP Portals
 SeeBeyond
28
How WSRP and Java Portlet API (JSR 168) fit
 Portlet API defines Java API for local portlets
 WSRP defines user-facing, interactive web services that
plug & play with portals
 Goals:

Allow Java portlets to be wrapped and published to UDDI as WSRP
services

Allow WSRP services to be integrated in portals by using generic
portlet proxies
15
29
Portal consuming .NET-based RPWS Services
Portal
Servers
IIS
.NET
object
Microsoft
Office as
OLE server
RPWS
30
RPWS service inside a Word Document
Portal
Servers
.NET
object
WSRP
16
Thank you !