web services for remote portlets - software summit · dave landers — wsrp: web services for...
TRANSCRIPT
![Page 1: Web Services for Remote Portlets - Software Summit · Dave Landers — WSRP: Web Services for Remote Portlets Page Namespace Encoding Consumer Rewriting Portlet prefixes names with](https://reader030.vdocuments.site/reader030/viewer/2022011900/5f055e107e708231d4129cc6/html5/thumbnails/1.jpg)
Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, BEA Systems, Inc.
Dave Landers — WSRP: Web Services for Remote Portlets Page
WSRPWeb Services for Remote Portlets
Dave Landers
WebLogic Portal Architect
BEA Systems, Inc.
![Page 2: Web Services for Remote Portlets - Software Summit · Dave Landers — WSRP: Web Services for Remote Portlets Page Namespace Encoding Consumer Rewriting Portlet prefixes names with](https://reader030.vdocuments.site/reader030/viewer/2022011900/5f055e107e708231d4129cc6/html5/thumbnails/2.jpg)
Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, BEA Systems, Inc.
Dave Landers — WSRP: Web Services for Remote Portlets Page
Session Goals
Basic WSRP description
Outline of protocol
Why / when WSRP is useful
Developer best practices
Deploy your portlets locally or with WSRP
Information to avoid problems
Non-Goals
Implementing a WSRP-enabled Portal
Reading WSRP SOAP messages
![Page 3: Web Services for Remote Portlets - Software Summit · Dave Landers — WSRP: Web Services for Remote Portlets Page Namespace Encoding Consumer Rewriting Portlet prefixes names with](https://reader030.vdocuments.site/reader030/viewer/2022011900/5f055e107e708231d4129cc6/html5/thumbnails/3.jpg)
Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, BEA Systems, Inc.
Dave Landers — WSRP: Web Services for Remote Portlets Page
Overview
![Page 4: Web Services for Remote Portlets - Software Summit · Dave Landers — WSRP: Web Services for Remote Portlets Page Namespace Encoding Consumer Rewriting Portlet prefixes names with](https://reader030.vdocuments.site/reader030/viewer/2022011900/5f055e107e708231d4129cc6/html5/thumbnails/4.jpg)
Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, BEA Systems, Inc.
Dave Landers — WSRP: Web Services for Remote Portlets Page
What Is WSRP?
An OASIS standard
Version 1.0: August, 2003
Version 2.0: In the works….
Aligned with other portlet specifications
JSR-168: Java Portlet Specification
.NET
etc.
![Page 5: Web Services for Remote Portlets - Software Summit · Dave Landers — WSRP: Web Services for Remote Portlets Page Namespace Encoding Consumer Rewriting Portlet prefixes names with](https://reader030.vdocuments.site/reader030/viewer/2022011900/5f055e107e708231d4129cc6/html5/thumbnails/5.jpg)
Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, BEA Systems, Inc.
Dave Landers — WSRP: Web Services for Remote Portlets Page
Web Services for Remote Portlets
Web Service
A Protocol for communications
A Contract for behavior
Portlets
User Interfaces aggregated in a portal
Mini-applications, displays, widgets, etc.
Remote
Portlets are hosted separately from the Portal
![Page 6: Web Services for Remote Portlets - Software Summit · Dave Landers — WSRP: Web Services for Remote Portlets Page Namespace Encoding Consumer Rewriting Portlet prefixes names with](https://reader030.vdocuments.site/reader030/viewer/2022011900/5f055e107e708231d4129cc6/html5/thumbnails/6.jpg)
Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, BEA Systems, Inc.
Dave Landers — WSRP: Web Services for Remote Portlets Page
What Can WSRP Do?
Deliver portlets to multiple portals
Aggregate portlets from several providers
Provide a UI-oriented service
Rather than data- or logic- based services
Unify Portlet standards
Ensure concepts and data exchanged arealigned with other standards in both theportal and web service arenas.
WSRP Overview - Goals
![Page 7: Web Services for Remote Portlets - Software Summit · Dave Landers — WSRP: Web Services for Remote Portlets Page Namespace Encoding Consumer Rewriting Portlet prefixes names with](https://reader030.vdocuments.site/reader030/viewer/2022011900/5f055e107e708231d4129cc6/html5/thumbnails/7.jpg)
Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, BEA Systems, Inc.
Dave Landers — WSRP: Web Services for Remote Portlets Page
Why WSRP?
Aggregate
Portlets from several sources
• And maybe deployed on different platforms
Centralize
Access for your users
Unify several individual portals into one “master portal”
• Unify your intra-net
Decouple
Portals from portlets; Portlets from each other
Helps with: Deployment, Administration, Development,Upgrade, etc.
![Page 8: Web Services for Remote Portlets - Software Summit · Dave Landers — WSRP: Web Services for Remote Portlets Page Namespace Encoding Consumer Rewriting Portlet prefixes names with](https://reader030.vdocuments.site/reader030/viewer/2022011900/5f055e107e708231d4129cc6/html5/thumbnails/8.jpg)
Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, BEA Systems, Inc.
Dave Landers — WSRP: Web Services for Remote Portlets Page
WSRP Support
Apache WSRP4J
BEA WebLogic Portal
BEA AquaLogic UserInteraction (Plumtree)
Clickmarks
eXo (open source)
Fujitsu
Gluecode
IBM WebSphere Portal
Intrafinity
Liferay (open source)
Microsoft SharePoint
NetUnity
OracleAS Portal
SAP
Sun
uPortal (open source)
Vignette
webMethods
and more …
![Page 9: Web Services for Remote Portlets - Software Summit · Dave Landers — WSRP: Web Services for Remote Portlets Page Namespace Encoding Consumer Rewriting Portlet prefixes names with](https://reader030.vdocuments.site/reader030/viewer/2022011900/5f055e107e708231d4129cc6/html5/thumbnails/9.jpg)
Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, BEA Systems, Inc.
Dave Landers — WSRP: Web Services for Remote Portlets Page
A UI Oriented Service
Much Higher level than other services
Compare and Contrast:
Data or Logic services
• Retrieve data
• Interact with business logic functions
• Each user builds another UI
WSRP
• Retrieve the UI markup
• Interact with the UI
• Hides the details of data or logic, focuses on the UI
![Page 10: Web Services for Remote Portlets - Software Summit · Dave Landers — WSRP: Web Services for Remote Portlets Page Namespace Encoding Consumer Rewriting Portlet prefixes names with](https://reader030.vdocuments.site/reader030/viewer/2022011900/5f055e107e708231d4129cc6/html5/thumbnails/10.jpg)
Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, BEA Systems, Inc.
Dave Landers — WSRP: Web Services for Remote Portlets Page
WSRP Basics
![Page 11: Web Services for Remote Portlets - Software Summit · Dave Landers — WSRP: Web Services for Remote Portlets Page Namespace Encoding Consumer Rewriting Portlet prefixes names with](https://reader030.vdocuments.site/reader030/viewer/2022011900/5f055e107e708231d4129cc6/html5/thumbnails/11.jpg)
Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, BEA Systems, Inc.
Dave Landers — WSRP: Web Services for Remote Portlets Page
Basic WSRP Operations
Get Markup
HTML fragments
Handle interactions
Forms, links, etc.
Service Description
Producer advertises its capabilities and requirements
Registration
Consumer registers with Producer
Customization
Of portlets
![Page 12: Web Services for Remote Portlets - Software Summit · Dave Landers — WSRP: Web Services for Remote Portlets Page Namespace Encoding Consumer Rewriting Portlet prefixes names with](https://reader030.vdocuments.site/reader030/viewer/2022011900/5f055e107e708231d4129cc6/html5/thumbnails/12.jpg)
Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, BEA Systems, Inc.
Dave Landers — WSRP: Web Services for Remote Portlets Page
Producer and Consumer
Producer
The Web Service
Offers one or more Portlets
Not necessarily a Portal itself
Consumer
The Web Service Client
Offers Portlets from one or more Producers
Is usually a Portal
Mediates interaction between User and Producer
![Page 13: Web Services for Remote Portlets - Software Summit · Dave Landers — WSRP: Web Services for Remote Portlets Page Namespace Encoding Consumer Rewriting Portlet prefixes names with](https://reader030.vdocuments.site/reader030/viewer/2022011900/5f055e107e708231d4129cc6/html5/thumbnails/13.jpg)
Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, BEA Systems, Inc.
Dave Landers — WSRP: Web Services for Remote Portlets Page
WSRP Interfaces
WSRP defines 4 interfaces (WSDL)Service Description *
Registration
Markup *
Portlet Management• Only two are required (*)
• Not all operations of these are required
Different support requirements for Producersand Consumers
Several levels of functionality / complexity
![Page 14: Web Services for Remote Portlets - Software Summit · Dave Landers — WSRP: Web Services for Remote Portlets Page Namespace Encoding Consumer Rewriting Portlet prefixes names with](https://reader030.vdocuments.site/reader030/viewer/2022011900/5f055e107e708231d4129cc6/html5/thumbnails/14.jpg)
Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, BEA Systems, Inc.
Dave Landers — WSRP: Web Services for Remote Portlets Page
Service Description Interface
Required
Producer provides its description
Capabilities
Requirements
• Is registration required?
• Require cookie initialization
Portlet offerings
![Page 15: Web Services for Remote Portlets - Software Summit · Dave Landers — WSRP: Web Services for Remote Portlets Page Namespace Encoding Consumer Rewriting Portlet prefixes names with](https://reader030.vdocuments.site/reader030/viewer/2022011900/5f055e107e708231d4129cc6/html5/thumbnails/15.jpg)
Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, BEA Systems, Inc.
Dave Landers — WSRP: Web Services for Remote Portlets Page
Registration Interface
Optional
Producers are not required to implement it
Producer may require it of Consumers
Consumers register with Producer
May include “out-of-band” communications
• Phone calls or email or payment…
• … to get registration keys, etc.
Registration can be used by Producer to
Provide enhanced offerings to some Consumers
Provide Consumer-specific offerings
Customize portlets per-Consumer
![Page 16: Web Services for Remote Portlets - Software Summit · Dave Landers — WSRP: Web Services for Remote Portlets Page Namespace Encoding Consumer Rewriting Portlet prefixes names with](https://reader030.vdocuments.site/reader030/viewer/2022011900/5f055e107e708231d4129cc6/html5/thumbnails/16.jpg)
Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, BEA Systems, Inc.
Dave Landers — WSRP: Web Services for Remote Portlets Page
Markup Interface
Required
The Main Thing
Get Markup
The display or UI to render
Perform Interaction
As in, post a form
Some Session and Cookie stuff
![Page 17: Web Services for Remote Portlets - Software Summit · Dave Landers — WSRP: Web Services for Remote Portlets Page Namespace Encoding Consumer Rewriting Portlet prefixes names with](https://reader030.vdocuments.site/reader030/viewer/2022011900/5f055e107e708231d4129cc6/html5/thumbnails/17.jpg)
Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, BEA Systems, Inc.
Dave Landers — WSRP: Web Services for Remote Portlets Page
Portlet Management Interface
Optional
Allows Consumers to manage Portlets
Portlet descriptions
Persistent state
Personalization
Get / Set / Describe properties
Portlet lifecycle
Cloning and destroying portlet instances
![Page 18: Web Services for Remote Portlets - Software Summit · Dave Landers — WSRP: Web Services for Remote Portlets Page Namespace Encoding Consumer Rewriting Portlet prefixes names with](https://reader030.vdocuments.site/reader030/viewer/2022011900/5f055e107e708231d4129cc6/html5/thumbnails/18.jpg)
Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, BEA Systems, Inc.
Dave Landers — WSRP: Web Services for Remote Portlets Page
Two-Step Protocol
WSRP uses a “Two Step” protocol forinteractionperformBlockingInteraction• Like a HTTP POST
• Returns new portlet state, etc.
• JSR-168: processAction()
getMarkup• Using any state returned by Producer
• Returns markup to display
• Repeated calls return same markup
• JSR-168: render()
![Page 19: Web Services for Remote Portlets - Software Summit · Dave Landers — WSRP: Web Services for Remote Portlets Page Namespace Encoding Consumer Rewriting Portlet prefixes names with](https://reader030.vdocuments.site/reader030/viewer/2022011900/5f055e107e708231d4129cc6/html5/thumbnails/19.jpg)
Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, BEA Systems, Inc.
Dave Landers — WSRP: Web Services for Remote Portlets Page
Doing the Two Step
Allows Consumer to get markup as needed
Consumer may repeatedly render the portlet
• While user interacts with other portlets
• This requires separation between interaction andrendering
Producer may return markup withperformBlockingInteraction response
Optional optimization
![Page 20: Web Services for Remote Portlets - Software Summit · Dave Landers — WSRP: Web Services for Remote Portlets Page Namespace Encoding Consumer Rewriting Portlet prefixes names with](https://reader030.vdocuments.site/reader030/viewer/2022011900/5f055e107e708231d4129cc6/html5/thumbnails/20.jpg)
Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, BEA Systems, Inc.
Dave Landers — WSRP: Web Services for Remote Portlets Page
Caching of Markup
Consumer may cache markup
Avoid repeated calls to getMarkup
Producer informs Consumer if caching is OK
• Returns CacheControl element with markup
Expiration of markup validity
User scope (shared or not)
Producers may also cache
As appropriate
![Page 21: Web Services for Remote Portlets - Software Summit · Dave Landers — WSRP: Web Services for Remote Portlets Page Namespace Encoding Consumer Rewriting Portlet prefixes names with](https://reader030.vdocuments.site/reader030/viewer/2022011900/5f055e107e708231d4129cc6/html5/thumbnails/21.jpg)
Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, BEA Systems, Inc.
Dave Landers — WSRP: Web Services for Remote Portlets Page
Portlet State
Transient state
Navigational state
• “Where are we” in a portlet navigation cycle
• Bookmarkable
Session state
• Similar to HTTP Session data
Persistent state
Properties exposed to Consumer
Some other state (database, etc.)
![Page 22: Web Services for Remote Portlets - Software Summit · Dave Landers — WSRP: Web Services for Remote Portlets Page Namespace Encoding Consumer Rewriting Portlet prefixes names with](https://reader030.vdocuments.site/reader030/viewer/2022011900/5f055e107e708231d4129cc6/html5/thumbnails/22.jpg)
Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, BEA Systems, Inc.
Dave Landers — WSRP: Web Services for Remote Portlets Page
State Management
Consumer and Producer cooperate tomaintain Portlet State
Producer returns to Consumer
Navigational State
Session ID
Handle of cloned portlets
Consumers return these with future requests
![Page 23: Web Services for Remote Portlets - Software Summit · Dave Landers — WSRP: Web Services for Remote Portlets Page Namespace Encoding Consumer Rewriting Portlet prefixes names with](https://reader030.vdocuments.site/reader030/viewer/2022011900/5f055e107e708231d4129cc6/html5/thumbnails/23.jpg)
Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, BEA Systems, Inc.
Dave Landers — WSRP: Web Services for Remote Portlets Page
Personalization
Portlets can be personalized
Properties (persistent state) stored per-user
User might have several instances of the sameportlet, each customized differently
JSR-168: PortletPreferences
Requires new portlet instance
Unique portlet handle identifies instance
• Consumer-Configured portlet
Portlets cloned to make instances
![Page 24: Web Services for Remote Portlets - Software Summit · Dave Landers — WSRP: Web Services for Remote Portlets Page Namespace Encoding Consumer Rewriting Portlet prefixes names with](https://reader030.vdocuments.site/reader030/viewer/2022011900/5f055e107e708231d4129cc6/html5/thumbnails/24.jpg)
Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, BEA Systems, Inc.
Dave Landers — WSRP: Web Services for Remote Portlets Page
Portlet Cloning
Portlet handle returned by ServiceDescription is generic or shared
Producer-Offered portlet
Not customized
When changing persistent state, Producermust:
Clone portlet
Return new portlet handle
Consumer uses this handle from now on
![Page 25: Web Services for Remote Portlets - Software Summit · Dave Landers — WSRP: Web Services for Remote Portlets Page Namespace Encoding Consumer Rewriting Portlet prefixes names with](https://reader030.vdocuments.site/reader030/viewer/2022011900/5f055e107e708231d4129cc6/html5/thumbnails/25.jpg)
Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, BEA Systems, Inc.
Dave Landers — WSRP: Web Services for Remote Portlets Page
Cloning Mechanisms
Explicit
Portlet Management Interface: clonePortlet
Implicit
Markup Interface: performBlockingActionwith cloneBeforeWrite
ProducerOffered
(Not Modifiable)
Destroyed
performBlockingActioncloneBeforeWrite
clonePortlet
clonePortlet
destroyPortlet
ConsumerConfigured
(Modifiable)
setPortletProperties
![Page 26: Web Services for Remote Portlets - Software Summit · Dave Landers — WSRP: Web Services for Remote Portlets Page Namespace Encoding Consumer Rewriting Portlet prefixes names with](https://reader030.vdocuments.site/reader030/viewer/2022011900/5f055e107e708231d4129cc6/html5/thumbnails/26.jpg)
Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, BEA Systems, Inc.
Dave Landers — WSRP: Web Services for Remote Portlets Page
WSRP Basics - Summary
Interfaces
Many optional levels of support
Markup and Interaction
Two Step Protocol
State
Transient and Persistent
Cloning Portlets
So they can be personalized
![Page 27: Web Services for Remote Portlets - Software Summit · Dave Landers — WSRP: Web Services for Remote Portlets Page Namespace Encoding Consumer Rewriting Portlet prefixes names with](https://reader030.vdocuments.site/reader030/viewer/2022011900/5f055e107e708231d4129cc6/html5/thumbnails/27.jpg)
Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, BEA Systems, Inc.
Dave Landers — WSRP: Web Services for Remote Portlets Page
Writing for WSRP
Best Practices
![Page 28: Web Services for Remote Portlets - Software Summit · Dave Landers — WSRP: Web Services for Remote Portlets Page Namespace Encoding Consumer Rewriting Portlet prefixes names with](https://reader030.vdocuments.site/reader030/viewer/2022011900/5f055e107e708231d4129cc6/html5/thumbnails/28.jpg)
Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, BEA Systems, Inc.
Dave Landers — WSRP: Web Services for Remote Portlets Page
Writing Portlets for WSRP
If you write for WSRP, your portlets will still workas local portlets
You can write local portlets that will break withWSRP
Biggest issues areRewriting URLs
Name-spacing of identifiers
Assuming things about the container• Availability of HTTP Request and Session data
Assuming relationships between portlets• Where portlets are deployed (relative to each other)
• Using Request or Session data for communications
![Page 29: Web Services for Remote Portlets - Software Summit · Dave Landers — WSRP: Web Services for Remote Portlets Page Namespace Encoding Consumer Rewriting Portlet prefixes names with](https://reader030.vdocuments.site/reader030/viewer/2022011900/5f055e107e708231d4129cc6/html5/thumbnails/29.jpg)
Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, BEA Systems, Inc.
Dave Landers — WSRP: Web Services for Remote Portlets Page
Markup Considerations
Portlet returns Markup Fragment
Usually assembled into a full page (portal)
• By Consumer’s Portal
Just like local portlets
Implications
Markup Fragment is not a full document (page)
Identifiers must co-exist with remainder of page
• Named attributes
• Javascript functions, variables, etc.
![Page 30: Web Services for Remote Portlets - Software Summit · Dave Landers — WSRP: Web Services for Remote Portlets Page Namespace Encoding Consumer Rewriting Portlet prefixes names with](https://reader030.vdocuments.site/reader030/viewer/2022011900/5f055e107e708231d4129cc6/html5/thumbnails/30.jpg)
Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, BEA Systems, Inc.
Dave Landers — WSRP: Web Services for Remote Portlets Page
Markup as Fragments
Some tags are not allowed
<html> <body> <head>
<title> <frame> <frameset>
Consumer will assemble fragments intolarger portal page
![Page 31: Web Services for Remote Portlets - Software Summit · Dave Landers — WSRP: Web Services for Remote Portlets Page Namespace Encoding Consumer Rewriting Portlet prefixes names with](https://reader030.vdocuments.site/reader030/viewer/2022011900/5f055e107e708231d4129cc6/html5/thumbnails/31.jpg)
Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, BEA Systems, Inc.
Dave Landers — WSRP: Web Services for Remote Portlets Page
Names and Identifiers
HTML forms, Javascript methods, variables
Several portlets are aggregated on a portal page
Many names need to be unique to a portlet
• Avoid collisions between Portlets
• Even two instances of same portlet
![Page 32: Web Services for Remote Portlets - Software Summit · Dave Landers — WSRP: Web Services for Remote Portlets Page Namespace Encoding Consumer Rewriting Portlet prefixes names with](https://reader030.vdocuments.site/reader030/viewer/2022011900/5f055e107e708231d4129cc6/html5/thumbnails/32.jpg)
Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, BEA Systems, Inc.
Dave Landers — WSRP: Web Services for Remote Portlets Page
Namespace Encoding
Consumer Rewriting
Portlet prefixes names with “wsrp_rewrite_”
Consumer replaces this with something unique
• And valid for Javascript variables, etc.
Producer Encoding
Portlet uses namespacePrefix provided by theConsumer to prefix tokens in the markup
Best Practice for Portlet Developers
Use available APIs and Tags
• JSR-168: renderResponse.getNamespace() + “foo”
![Page 33: Web Services for Remote Portlets - Software Summit · Dave Landers — WSRP: Web Services for Remote Portlets Page Namespace Encoding Consumer Rewriting Portlet prefixes names with](https://reader030.vdocuments.site/reader030/viewer/2022011900/5f055e107e708231d4129cc6/html5/thumbnails/33.jpg)
Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, BEA Systems, Inc.
Dave Landers — WSRP: Web Services for Remote Portlets Page
URLs in Remote Portlets
URLs used to render portlets or performactions (POST)
Can not be “normal” URLs
Refer to Consumer’s portal
May need to “target” a specific portlet
Need to forward to Producer via WSRP
No way for portlet developer to know whatthe URL should look like
![Page 34: Web Services for Remote Portlets - Software Summit · Dave Landers — WSRP: Web Services for Remote Portlets Page Namespace Encoding Consumer Rewriting Portlet prefixes names with](https://reader030.vdocuments.site/reader030/viewer/2022011900/5f055e107e708231d4129cc6/html5/thumbnails/34.jpg)
Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, BEA Systems, Inc.
Dave Landers — WSRP: Web Services for Remote Portlets Page
Consumer URL Rewriting
Required functionality by WSRP
Portlet writes URLs using tokensConsumer replaces tokens to make URLswsrp_rewrite?wsrp-urlType=render&wsrp-mode=help&wsrp-windowState=maximized/wsrp_rewrite
URLs provided by Producer contain tokens forType of URL (render, resource, action, etc.)
Portlet State
Mode, Window State
… etc.
And no specific host names, etc.
![Page 35: Web Services for Remote Portlets - Software Summit · Dave Landers — WSRP: Web Services for Remote Portlets Page Namespace Encoding Consumer Rewriting Portlet prefixes names with](https://reader030.vdocuments.site/reader030/viewer/2022011900/5f055e107e708231d4129cc6/html5/thumbnails/35.jpg)
Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, BEA Systems, Inc.
Dave Landers — WSRP: Web Services for Remote Portlets Page
Producer URL Rewriting
Optional in WSRP
Consumer supplies templates to Producer forvarious types of URLs
http://consumer.com/path/{wsrp-urlType}?mode={wsrp-mode}&var=name& ...
Producer rewrites URLs, replacing {values}in template
Probably more efficient than consumerrewriting
![Page 36: Web Services for Remote Portlets - Software Summit · Dave Landers — WSRP: Web Services for Remote Portlets Page Namespace Encoding Consumer Rewriting Portlet prefixes names with](https://reader030.vdocuments.site/reader030/viewer/2022011900/5f055e107e708231d4129cc6/html5/thumbnails/36.jpg)
Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, BEA Systems, Inc.
Dave Landers — WSRP: Web Services for Remote Portlets Page
URLs in Portlets
Don’t hard-code themExcept for absolute off-site URLs (links)
Anything pointing to the Portal or Portletmust be rewritten
By Consumer or Producer
Best Practice for Portlet developersUse available APIs and Tags• Let the Producer / Consumer figure it out
• JSR-168: createActionURL()and createRenderURL()
![Page 37: Web Services for Remote Portlets - Software Summit · Dave Landers — WSRP: Web Services for Remote Portlets Page Namespace Encoding Consumer Rewriting Portlet prefixes names with](https://reader030.vdocuments.site/reader030/viewer/2022011900/5f055e107e708231d4129cc6/html5/thumbnails/37.jpg)
Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, BEA Systems, Inc.
Dave Landers — WSRP: Web Services for Remote Portlets Page
Dynamic Client-Side Code
Dynamically generated URLs and Identifiershave problems
Those computed by client-side (Javascript) code
Javascript generated by Producer mustunderstand consumer templates
Store URL templates and namespace in themarkup (script)
• Compute URLs and names using these
![Page 38: Web Services for Remote Portlets - Software Summit · Dave Landers — WSRP: Web Services for Remote Portlets Page Namespace Encoding Consumer Rewriting Portlet prefixes names with](https://reader030.vdocuments.site/reader030/viewer/2022011900/5f055e107e708231d4129cc6/html5/thumbnails/38.jpg)
Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, BEA Systems, Inc.
Dave Landers — WSRP: Web Services for Remote Portlets Page
Request and Session Data
May not be accessible by all WSRP portlets
Portlets may be remote from each other
May not be accessed by same Request
• Is a Web Service request (may not see HTTP)
• HTTP Request “belongs to” the Portal
Don’t use Request attributes or Session data asinter-portlet communication scheme
• If you must… Session-sharing portlets should be“grouped” on same Producer
Ensure your Producer supports this
![Page 39: Web Services for Remote Portlets - Software Summit · Dave Landers — WSRP: Web Services for Remote Portlets Page Namespace Encoding Consumer Rewriting Portlet prefixes names with](https://reader030.vdocuments.site/reader030/viewer/2022011900/5f055e107e708231d4129cc6/html5/thumbnails/39.jpg)
Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, BEA Systems, Inc.
Dave Landers — WSRP: Web Services for Remote Portlets Page
Inter-Portlet Communications
Sometimes, portlets must interact
Two views of same data
Send events to each other
… or otherwise cooperate
Can be difficult to arrange
Timing is especially difficult
• Rendering of portlets is not sequential or synchronous
Remote adds an extra complication
![Page 40: Web Services for Remote Portlets - Software Summit · Dave Landers — WSRP: Web Services for Remote Portlets Page Namespace Encoding Consumer Rewriting Portlet prefixes names with](https://reader030.vdocuments.site/reader030/viewer/2022011900/5f055e107e708231d4129cc6/html5/thumbnails/40.jpg)
Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, BEA Systems, Inc.
Dave Landers — WSRP: Web Services for Remote Portlets Page
Inter-Portlet Relationships
May need specific deployment requirements
All related portlets on same Producer
All portlets run in one JVM? (clustering issues)
Some vendors may have useful features
WebLogic Portal has IPC Events
• And associated WSRP Extension
WSRP 2.0 is addressing portlet events
I suggest designing any inter-portletcommunications as events
![Page 41: Web Services for Remote Portlets - Software Summit · Dave Landers — WSRP: Web Services for Remote Portlets Page Namespace Encoding Consumer Rewriting Portlet prefixes names with](https://reader030.vdocuments.site/reader030/viewer/2022011900/5f055e107e708231d4129cc6/html5/thumbnails/41.jpg)
Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, BEA Systems, Inc.
Dave Landers — WSRP: Web Services for Remote Portlets Page
CSS Style Sheets
WSRP specifies definitions for CSS
Portlets from several sources can have acommon look-and-feel
• Local portlets
• Several Producers
Cover a lot of types
• Fonts, Tables, Forms, Messages, Links, Menus, etc.
• See WSRP Specification for full list (Section 10)
Portlet container should offer same styles…
![Page 42: Web Services for Remote Portlets - Software Summit · Dave Landers — WSRP: Web Services for Remote Portlets Page Namespace Encoding Consumer Rewriting Portlet prefixes names with](https://reader030.vdocuments.site/reader030/viewer/2022011900/5f055e107e708231d4129cc6/html5/thumbnails/42.jpg)
Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, BEA Systems, Inc.
Dave Landers — WSRP: Web Services for Remote Portlets Page
Optional WSRP Features
Consumers must support more than Producers
But there are still a lot of options
Portlet Developers
Know features of your Producer
• Cloning (personalization) support
• Portlet persistent state
• Modes and window states
Portal Administrators
Understand your Consumer features
Choose a Consumer that is capable “enough”
• To handle Producers you expect
![Page 43: Web Services for Remote Portlets - Software Summit · Dave Landers — WSRP: Web Services for Remote Portlets Page Namespace Encoding Consumer Rewriting Portlet prefixes names with](https://reader030.vdocuments.site/reader030/viewer/2022011900/5f055e107e708231d4129cc6/html5/thumbnails/43.jpg)
Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, BEA Systems, Inc.
Dave Landers — WSRP: Web Services for Remote Portlets Page
WSRP and Security
Several concerns
Registration
Authentication
Authorization
Privacy
Integrity
Same issues as other Web Services
Mostly handled outside WSRP
![Page 44: Web Services for Remote Portlets - Software Summit · Dave Landers — WSRP: Web Services for Remote Portlets Page Namespace Encoding Consumer Rewriting Portlet prefixes names with](https://reader030.vdocuments.site/reader030/viewer/2022011900/5f055e107e708231d4129cc6/html5/thumbnails/44.jpg)
Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, BEA Systems, Inc.
Dave Landers — WSRP: Web Services for Remote Portlets Page
Web Services Security
Document level security
WS-Security
SAML
XML-Signature
XML-Encryption
Transport level security
HTTPS
Consumer Authentication
SSL with Client certificates
![Page 45: Web Services for Remote Portlets - Software Summit · Dave Landers — WSRP: Web Services for Remote Portlets Page Namespace Encoding Consumer Rewriting Portlet prefixes names with](https://reader030.vdocuments.site/reader030/viewer/2022011900/5f055e107e708231d4129cc6/html5/thumbnails/45.jpg)
Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, BEA Systems, Inc.
Dave Landers — WSRP: Web Services for Remote Portlets Page
WSRP Security
Consumer Authorization
Registration Interface
Including any necessary out-of-band process
End-User Access Control
Consumer-side
• Portal login, entitlements, etc.
Producer-side
• Using userContextKey in Markup Request
Insecure, not authenticated - real purpose is personalization
• Consumer / Producer may use Single Sign-On
![Page 46: Web Services for Remote Portlets - Software Summit · Dave Landers — WSRP: Web Services for Remote Portlets Page Namespace Encoding Consumer Rewriting Portlet prefixes names with](https://reader030.vdocuments.site/reader030/viewer/2022011900/5f055e107e708231d4129cc6/html5/thumbnails/46.jpg)
Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, BEA Systems, Inc.
Dave Landers — WSRP: Web Services for Remote Portlets Page
Error Handling Suggestions
Handle errors in your portlet
Gracefully
• Suitable business message
Rather than propagating exceptions
• Exception --> Producer error --> WSRP Fault -->Consumer error --> User has no idea what happened
Use meaningful error pages on Consumerside
Rather than relying on “StackTrace (or WSRPFault) Inside Portlet” pattern
![Page 47: Web Services for Remote Portlets - Software Summit · Dave Landers — WSRP: Web Services for Remote Portlets Page Namespace Encoding Consumer Rewriting Portlet prefixes names with](https://reader030.vdocuments.site/reader030/viewer/2022011900/5f055e107e708231d4129cc6/html5/thumbnails/47.jpg)
Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, BEA Systems, Inc.
Dave Landers — WSRP: Web Services for Remote Portlets Page
Debugging
Two usual problems
The portlet itself
• Debug as local portlet (i.e. in Producer’s Portal)
Problems when portlet deployed with WSRP
• Lots of layers to unravel
• Snoop on SOAP messages
• Producer faults described in WSRP Primer
Remember issues with
• URL Rewriting
• Identifier Namespacing
• Request and Session reliance
• Consumer / Producer complexity level mismatch
![Page 48: Web Services for Remote Portlets - Software Summit · Dave Landers — WSRP: Web Services for Remote Portlets Page Namespace Encoding Consumer Rewriting Portlet prefixes names with](https://reader030.vdocuments.site/reader030/viewer/2022011900/5f055e107e708231d4129cc6/html5/thumbnails/48.jpg)
Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, BEA Systems, Inc.
Dave Landers — WSRP: Web Services for Remote Portlets Page
Summary
Decoupling Portlets can simplify Deployment,Administration, Interoperability,Development Lifecycle, etc.
Aggregate Portlets from several sources
Writing for WSRP will not break local usage
Gives you options
WSRP attempts to unify concepts in otherPortlet specifications
JSR-168, .NET, etc.
![Page 49: Web Services for Remote Portlets - Software Summit · Dave Landers — WSRP: Web Services for Remote Portlets Page Namespace Encoding Consumer Rewriting Portlet prefixes names with](https://reader030.vdocuments.site/reader030/viewer/2022011900/5f055e107e708231d4129cc6/html5/thumbnails/49.jpg)
Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, BEA Systems, Inc.
Dave Landers — WSRP: Web Services for Remote Portlets Page
References
Oasishttp://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wsrp
• Specification
• White Papers
• Primer
![Page 50: Web Services for Remote Portlets - Software Summit · Dave Landers — WSRP: Web Services for Remote Portlets Page Namespace Encoding Consumer Rewriting Portlet prefixes names with](https://reader030.vdocuments.site/reader030/viewer/2022011900/5f055e107e708231d4129cc6/html5/thumbnails/50.jpg)
Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, BEA Systems, Inc.
Dave Landers — WSRP: Web Services for Remote Portlets Page
Other Related Sessions
Noel Bergman
Introduction to Portlet Programming withJSR-168
Kelvin Lawrence
Web Services Advanced Topics
• Security
![Page 51: Web Services for Remote Portlets - Software Summit · Dave Landers — WSRP: Web Services for Remote Portlets Page Namespace Encoding Consumer Rewriting Portlet prefixes names with](https://reader030.vdocuments.site/reader030/viewer/2022011900/5f055e107e708231d4129cc6/html5/thumbnails/51.jpg)
Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, BEA Systems, Inc.
Dave Landers — WSRP: Web Services for Remote Portlets Page
The End
Please fill out the evaluations