Date post: | 24-Dec-2015 |
Category: |
Documents |
Upload: | sarah-cross |
View: | 214 times |
Download: | 0 times |
WebSphere Portal, Portlets and Web Services
June 2002
Peter FischerDeveloper, WebSphere Portal Server
Portal ArchitectureIntroduction
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
5
LocalPortletLocal
Portlet
Major Functional Components
Portlet Container
SO
AP
Aggregation
Customization
User Registration/Selfcare
Au
then
tica
tio
n
Au
tho
riza
tio
n
LocalPortletLocal
PortletLocal
Portlet
RemotePortlet
RemotePortlet
RemotePortlet
RemotePortlet
RemotePortletWeb
Services
UserInformation
PortletSettings
Portlet Inst.Data
User‘sSelections
PortletProxy
PortletRegistry
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
7
Portlet Services
Cre
dent
ial
Vaul
t
Sear
ch
Con
tent
M
gmt
Internet Internet
WebSphere Portal Server Architecture
Portlet API
AggregationModules
(HTML, WML, VoiceXML, ...)
Remote Portlet Web ServicesSOAP Router
Authentication
Authorization
WebSpherePortal Server
Data Store
WebSphereMember
Subsystem
Local PortletsLocal
PortletsLocal
Portlets
Local PortletsLocal
PortletsPortletProxies
GlobalUDDI
Directory
Intranet
Intranet
CorporateUDDI
Directory
J2EE/WebSphere APIs
JCA
C
onne
ctor
s
Ente
rpris
e Ja
vaB
eans
Mes
sage
B
eans
Local PortletsLocal
PortletsCorporate
Web Services
Local PortletsLocal
PortletsPublic
Web Services
Web Sphere Portal Server
Engine
...Si
te
Ana
lyze
r
PD WebSeal,WTE Seal,NetegritySiteminder,WebSphere Security, orothers via TAI
WPS Database,Policy Director, orNetegrity 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 OrganizerContent Integration Packs forThird Parties
DB2 or Oracle
Local PortletsLocal
PortletsPublic
RPWS Services
Local PortletsLocal
PortletsCorporate
RPWS Services
SOA
PSO
AP
RPW
S / SOA
P
Portlets and Portlet API
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 ServicesPortal
Servlet
LocalPortlet
LocalPortlet
LocalPortlet
Po
rtle
t A
PI
(In
voca
tio
n)
Portlet API (context)
Ser
vlet
AP
I
J2E
E A
PIs
Portal Infrastructure, User RegistryPersistent and Transient Portal State
EJBs
Action
Portlet Container
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 Servletspublic 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 ... }
}
13
Example of Portlet View Mode
Use of PortletData, Beans and JSP™ componentspublic void doView(PortletRequest req, PortletResponse rsp) throws PortletException, IOException {
// Get stock symbols from portlet instance dataPortletData 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 Formspublic 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);}
15
More Information about Portlet Development
see Portlet Development Guideavailable at the portal libraryhttp://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 JavaTM 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
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
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
ServiceRequestor
ServiceProvider
ServiceRegistry
Find
Bind
Publish
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
Use
r‘s
Cli
ent
Portlet 1(Presentation)
Portlet 2(Presentation)
Portlet API
Portlet APIServiceSpecificProxy 1
ServiceSpecificProxy 2
Web Service 1(Data only,
no Presentation)
WS specificinterface
Web Service 2(Data only,
no presentation)
WS specificinterface
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
Use
r‘s
Cli
ent
Portlet API
Portlet API
GenericProxy
GenericProxy
RPWS Service 1(includes data and
presentation)
RPWS Service 2(includes data and
presentation)
SOAP
SOAP
RPWSAPI
RPWSAPI
Presentation and Interaction Layer
23
Publishing Portlets as RPWS Services
Portal 1
Portal 2
PortletProxy
PortalAdministration
PortletRegistry
PortalAggregation
Portlet Proxy Entry
PortalAdministration
PortletRegistry
PortalAggregation
Portlet Entry
RemotePortlet
Portal 2
RPWS/SOAP
UDDIPortlet 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
25
Business Scenario ExamplesTo 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 TCChairman: 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
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
29
Portal consuming .NET-based RPWS Services
PortalServers
IIS.NET
object
MicrosoftOffice as
OLE server
RPW
S
30
RPWS service inside a Word Document
PortalServers
.NETobject W
SRP
Thank you !