mon, dec 8, 2003 ja-sig conference, miami, fl ken weiner, unicon, inc. wsrp in uportal
Post on 22-Dec-2015
218 views
TRANSCRIPT
Mon, Dec 8, 2003JA-SIG Conference, Miami, FL
Ken Weiner, UNICON, Inc.
WSRP in uPortal
Mon, Dec 8, 2003JA-SIG Conference, Miami, FL
Overview
• Introduction to WSRP
• WSRP’s role in uPortal
• WSRP Interfaces
• WSRP Concepts
• WSRP Channel Type
• WSRP/uPortal Roadmap
Mon, Dec 8, 2003JA-SIG Conference, Miami, FL
Why WSRP ?
• We need an easy way to assemble visual, interactive Web applications with no programming while retaining a cohesive flow and common look-and-feel.
Mon, Dec 8, 2003JA-SIG Conference, Miami, FL
Leading to WSRP…• Web Services User Interface
(WSUI) – Epicentric
• Web Service eXperience Language (WSXL) – IBM
• Interactive Web Services – WebCollage
• Remote uPortal Channels – IBS and LAT
Mon, Dec 8, 2003JA-SIG Conference, Miami, FL
WSRP Working Group
Application server vendors
Portal vendors Application integration vendors
Enterprise application providers
Mon, Dec 8, 2003JA-SIG Conference, Miami, FL
A Joint effort
• OASIS Technical Committees– WSIA:
Web Services for Interactive Applications
» http://www.oasis-open.org/committees/wsia/
– WSRP: Web Services for Remote Portals
» http://www.oasis-open.org/committees/wsrp/
Mon, Dec 8, 2003JA-SIG Conference, Miami, FL
WSRP Goals
• To develop a web services standard that will allow for the plug-n-play of Portlets
• To enable an application administrator to pick from a rich choice of compliant remote content and application providers, and integrate them with just a few mouse clicks and no programming effort
Mon, Dec 8, 2003JA-SIG Conference, Miami, FL
Data-oriented vs. Presentation-oriented WS
Business logic (JavaXML)HTML
<courses> <course>…</course> <course>…</course></courses>
XML
Business logic (JavaXML)
WSDL
WSDL
Presentation logic (XSLT)
Business logic (JavaXML)
Presentation logic (XSLT)
Typical Data Web Service WSRP Web Service
SO
AP
SO
AP
Mon, Dec 8, 2003JA-SIG Conference, Miami, FL
Web Services for Remote Portlets (WSRP)
• WSRP will define– WSDL interface description for invocation of WSRP
services– How to Publish, Find, Bind WSRP services– Markup Fragment Rules for markup emitted by WSRP
services
• Developed by– Organization of the Advancement of
Structured Information Standards (OASIS)
• Current spec– 1.0, July 14, 2003
Mon, Dec 8, 2003JA-SIG Conference, Miami, FL
WSRP Actors
• Producer– Provides a Portlet as a presentation-oriented
web service
• Consumer– Consumes a Portlet as a presentation-
oriented web service
• End-Users– Clients to Consumers
Mon, Dec 8, 2003JA-SIG Conference, Miami, FL
Producer
Consumer
WSRP/uPortal Scenarios
Consumer/Producer
Consumer
WS
RP
WS
RP
WS
RP
WS
RP
WS
RP
SOAP
SOAP
SOAP
SOAP
Producer
Swing
WS
RP
WS
RP
SOAP
WS
RP
Mon, Dec 8, 2003JA-SIG Conference, Miami, FL
WSRP Data Flow
Producer
Generatemarkup
Changestate
ConsumerUser
Views page
Clicks link orsubmits form
getMarkup()
performBlockingInteraction()
getMarkup()
Describeservice
getServiceDescription()
FreeresourcesLogs out releaseSessions()
Mon, Dec 8, 2003JA-SIG Conference, Miami, FL
WSRP Interfaces
• Service description [required]– Queries the “capabilities” of the Producer
• Markup [required]– Request/interact with markup fragments
• Registration [optional]– Consumer registers with Producer
• Portlet management [optional]– Grants access to clone and customize Portlets
Mon, Dec 8, 2003JA-SIG Conference, Miami, FL
Service Description Data Structures
Extension, Handle, Key, ID, LocaledString, ResourceValue, Resource, ResourceList, ItemDescription, MarkupType, PortletDescription, Property, ResetProperty, PropertyList, PrepertyDescription, ModelTypes, ModelDescription, CookieProtocol, ServiceDescription, RegistrationState, RegistrationContext
Mon, Dec 8, 2003JA-SIG Conference, Miami, FL
Service Description Operations
• getServiceDescription()
Mon, Dec 8, 2003JA-SIG Conference, Miami, FL
Service Description Operations, Details
getServiceDescription()• Parameters:
– RegistrationContext, desiredLocales
• Returns: – ServiceDescription
• Faults: – InvalidRegistration, OperationFailed
Mon, Dec 8, 2003JA-SIG Conference, Miami, FL
Markup Data Structures
SessionContext, RuntimeContext, PortletContext, CacheControl, Templates, ClientData, NamedString, MarkupParams, MarkupContext, MarkupResponse, UpdateResponse, BlockingInteractionResponse, StateChange, UploadContext, InteractionParams, UserProfile, UserContext
Mon, Dec 8, 2003JA-SIG Conference, Miami, FL
Markup Operations
• getMarkup()
• initCookie()
• releaseSessions()
Mon, Dec 8, 2003JA-SIG Conference, Miami, FL
Markup Operations, Details
getMarkup()• Parameters:
– RegistrationContext, PortletContext, RuntimeContext, UserContext, MarkupParams
• Returns: – MarkupResponse, SessionContext
• Faults: – AccessDenied, InconsistantParameters,
InvalidRegistration, MissingParameters, OperationFailed, InvalidUserCategory, InvalidHandle, InvalidCookie, InvalidSession, UnsupportedMode, UnsupportedWindowState, UnsupportedLocale, UnsupportedMimeType
Mon, Dec 8, 2003JA-SIG Conference, Miami, FL
Markup Operations, Details
initCookie()• Parameters:
– RegistrationContext
• Returns: – N/A
• Faults: – AccessDenied, InvalidRegistration, OperationFailed
Mon, Dec 8, 2003JA-SIG Conference, Miami, FL
Markup Operations, Details
releaseSessions()• Parameters:
– RegistrationContext, sessionIDs
• Returns: – N/A
• Faults: – AccessDenied, InvalidRegistration, MissingParameters,
OperationFailed
Mon, Dec 8, 2003JA-SIG Conference, Miami, FL
Registration Data Structures
RegistrationData
Mon, Dec 8, 2003JA-SIG Conference, Miami, FL
Registration Operations
• register()
• modifyRegistration()
• deregister()
Mon, Dec 8, 2003JA-SIG Conference, Miami, FL
Registration Operations, Details
register()• Parameters:
– RegistrationData
• Returns: – RegistrationContext
• Faults: – MissingParameters, OperationFailed
Mon, Dec 8, 2003JA-SIG Conference, Miami, FL
Registration Operations, Details
modifyRegistration()• Parameters:
– RegistrationContext, RegistrationData
• Returns: – RegistrationState
• Faults: – InvalidRegistration, MissingParameters, OperationFailed
Mon, Dec 8, 2003JA-SIG Conference, Miami, FL
Registration Operations, Details
deregister()• Parameters:
– RegistrationContext
• Returns: – N/A
• Faults: – InvalidRegistration, OperationFailed
Mon, Dec 8, 2003JA-SIG Conference, Miami, FL
Portlet Management Data Structures
DestroyFailed, DestroyPortletsResponse, PortletDescriptionResponse, PortletPropertyDescriptionResponse
Mon, Dec 8, 2003JA-SIG Conference, Miami, FL
Portlet Management Operations
• getPortletDescription()
• clonePortlet()
• destroyPortlets()
• setPortletProperties()
• getPortletProperties()
• getPortletPropertyDescription()
Mon, Dec 8, 2003JA-SIG Conference, Miami, FL
Portlet Management Operations, Details
getPortletDescription()• Parameters:
– RegistrationContext, PortletContext, UserContext, desiredLocales
• Returns: – PortletDescriptionResponse
• Faults: – AccessDenied, InconsistantParameters,
InvalidRegistration, MissingParameters, OperationFailed, InvalidUserCategory, InvalidHandle
Mon, Dec 8, 2003JA-SIG Conference, Miami, FL
Portlet Management Operations, Details
clonePortlet ()• Parameters:
– RegistrationContext, PortletContext, UserContext
• Returns: – PortletContext
• Faults: – AccessDenied, InconsistantParameters,
InvalidRegistration, MissingParameters, OperationFailed, InvalidUserCategory, InvalidHandle
Mon, Dec 8, 2003JA-SIG Conference, Miami, FL
Portlet Management Operations, Details
destroyPortlets()• Parameters:
– RegistrationContext, portletHandles
• Returns: – DestroyPortletsResponse
• Faults: – InconsistantParameters, InvalidRegistration,
MissingParameters, OperationFailed
Mon, Dec 8, 2003JA-SIG Conference, Miami, FL
Portlet Management Operations, Details
setPortletProperties()• Parameters:
– RegistrationContext, PortletContext, UserContext, PropertyList
• Returns: – PortletContext
• Faults: – AccessDenied, InconsistantParameters,
InvalidRegistration, MissingParameters, OperationFailed, InvalidUserCategory, InvalidHandle
Mon, Dec 8, 2003JA-SIG Conference, Miami, FL
Portlet Management Operations, Details
getPortletProperties()• Parameters:
– RegistrationContext, PortletContext, UserContext, names
• Returns: – PropertyList
• Faults: – AccessDenied, InconsistantParameters,
InvalidRegistration, MissingParameters, OperationFailed, InvalidUserCategory, InvalidHandle
Mon, Dec 8, 2003JA-SIG Conference, Miami, FL
Portlet Management Operations, Details
getPortletPropertyDescription()• Parameters:
– RegistrationContext, PortletContext, UserContext, desiredLocales
• Returns: – PortletPropertyDescriptionResponse
• Faults: – AccessDenied, InconsistantParameters,
InvalidRegistration, MissingParameters, OperationFailed, InvalidUserCategory, InvalidHandle
Mon, Dec 8, 2003JA-SIG Conference, Miami, FL
WSRP Concepts• Stateful Portlet Scenarios• Modes• Window States• URL Considerations• Markup Fragment Rules• CSS Style Definitions• Caching• Security• User Information• User Categories
Mon, Dec 8, 2003JA-SIG Conference, Miami, FL
Stateful Portlet Scenarios• No state
– Information on URL determines state– Typically a single-page Portlet
• Navigational state only– Portlet does not maintain state at the Producer– Portlet passes navigationState token to Consumer
• Local state– Portlet maintains state on the Producer.– Typically involves session ID.– Can also involve navigationalState token
Mon, Dec 8, 2003JA-SIG Conference, Miami, FL
Modes• How Consumer manages interaction with End-User• Consumer indicates to Portlet the current mode, Portlet
may request a mode change• Standard modes
– wsrp:view [required]• Render markup reflecting current state of Portlet
– wsrp:edit• Customization of Portlet
– wsrp:help• Explanation of Portlet and its usage
– wsrp:preview• Visual sample of how Portlet will appear on page
• Custom modes are permitted
Mon, Dec 8, 2003JA-SIG Conference, Miami, FL
Window States• Indicate amount of page space assigned to Portlet’s
content• Consumer indicates to Portlet the current window state,
Portlet may request a window state change• Standard window states
– wsrp-normal [required]• Sharing aggregated page with other Portlets
– wsrp-minimized• Portlet should not render visible markup
– wsrp-maximized• Portlet has more space that other Portlets
– wsrp-solo• Portlet is the only Portlet to be rendered on the page
• Custom window states are permitted
Mon, Dec 8, 2003JA-SIG Conference, Miami, FL
URL Considerations
• Portlet URLs need to target Portlets• Users interact with Consumers, not
Producers• Consumer URL Rewriting
– Producer defines URL templates with replaceable tokens
• Producer URL Rewriting– Consumer defines URL templates with
replaceable tokens
Mon, Dec 8, 2003JA-SIG Conference, Miami, FL
Consumer URL Rewriting• Producer declares URL template
wsrp_rewrite?wsrp-urlType=value&name=1=value1&name2=value2…/wsrp_rewrite
• Parameter name choices– wsrp-urlType– wsrp-navigationalState– wsrp-interactionState– wsrp-mode– wsrp-windowState– wsrp-fragmentID– wsrp-secureURL
• ExampleRequest that Consumer changes the Portlet window statewsrp_rewrite?wsrp-urlType=render&wsrp-windowState=maximized/wsrp_rewrite
Mon, Dec 8, 2003JA-SIG Conference, Miami, FL
Producer URL Rewriting• Consumer declares URL template
http://www.consumer.com/path/{wsrp-urlType}?mode={wsrp-mode}&...
• Parameter name choices– All the ones for Consumer URL Rewriting plus...– wsrp-portletHandle– wsrp-userContextKey– wsrp-portletInstanceKey– wsrp-sessionID
• ExampleRequest that Consumer changes the Portlet window statehttp://www.consumer.com/path/{wsrp-urlType}?portletEvent={wsrp-mode}
Mon, Dec 8, 2003JA-SIG Conference, Miami, FL
Markup Fragment Rules• Certain markup tags should be left out of a
markup fragment emitted by a portlet
• HTML and XHTML– Disallowed
• <html>, <head>, <title>, <body>, <frameset>, <frame>
– Not recommended• <base>, <link>, <meta>, <style>
Mon, Dec 8, 2003JA-SIG Conference, Miami, FL
CSS Style Definitions
• A standard set of CSS style definitions are needed so that aggregated Portlets retain a common look and feel on a page
Fontsportlet-font, portlet-font-dim
Messagesportlet-msg-status, portlet-msg-info, portlet-msg-error, etc.
Sectionsportlet-section-header, portlet-section-body, portlet-section-alternate, etc.
Tablesportlet-table-header, portlet-table-body, portlet-table-selected, etc.
Formsportlet-form-label, portlet-form-input-field, portlet-form-button, etc.
Menusportlet-menu, portlet-menu-item, portlet-menu-caption, etc.
Mon, Dec 8, 2003JA-SIG Conference, Miami, FL
CSS Style Example
Favorite color
Other color:
Blue Green Red Pink
Submit
.portlet-form-label
.portlet-form-field-label
.portlet-form-button
.portlet-form-input-field
.portlet-form-field
Mon, Dec 8, 2003JA-SIG Conference, Miami, FL
Security
• WSRP Specification 1.0, Section 9– “For this version of the specification,
emphasis is placed on using transport-level security standards (e.g. SSL/TLS) to address the security issues involved in Consumers invoking Producers on behalf of End-Users.”
• Producer declares an https endpoint in WSDL
• Consumer lets Producer know if End-User is communicating securely
Mon, Dec 8, 2003JA-SIG Conference, Miami, FL
User Information• Standard set of user attribute aliases mapped to local
attributes• uPortal EduPerson 1.0
– Examples• sn• givenName• homePostalAddress
• WSRP P3P User Data– Examples
• name/family• name/given• homeInfo/postal/street
• User Identity – defer to other specifications– SAML– WS-Security
Mon, Dec 8, 2003JA-SIG Conference, Miami, FL
User Categories
• A Producer declares which User Categories it supports• A Consumer declares which User Categories it supports• Usage of these categories is optional for both Consumer
and Producer• Standard User Categories
– wsrp:full• Users can use full functionality of Portlet
– wsrp:standard• Users may customize some set of properties for Portlet
– wsrp:minimal• Users may view a Portlet, but not modify its properties
Mon, Dec 8, 2003JA-SIG Conference, Miami, FL
uPortal WSRP Consumer Code
• Channel– org.jasig.portal.channels.wsrp.CConsumer
• WSDL Service Locator– org.jasig.portal.wsrp.wsdl.*
• Interfaces– org.jasig.portal.wsrp.intf.*
• Bindings (client stubs)– org.jasig.portal.wsrp.bind.*
• Data Structures– org.jasig.portal.wsrp.types.*
Mon, Dec 8, 2003JA-SIG Conference, Miami, FL
uPortal WSRP Producer Code
• Web application deployment descriptor– web.xml
• Deployed web services– server-config.wsdd
• Bindings (server skeletons)– org.jasig.portal.wsrp.bind.*
• Data Structures– org.jasig.portal.wsrp.types.*
Mon, Dec 8, 2003JA-SIG Conference, Miami, FL
WSRP Consumer Channel Type
Mon, Dec 8, 2003JA-SIG Conference, Miami, FL
WSRP Consumer Channel Type
Mon, Dec 8, 2003JA-SIG Conference, Miami, FL
WSRP Channel
Mon, Dec 8, 2003JA-SIG Conference, Miami, FL
WSRP v1.1
• Planned for early/mid 2004
• Markup– VoiceXML fragment rules – Additional CSS classes? – WML fragment rules
• Description and Transport Issues– Leveraging attachment mechanisms
• Publish/Find/Bind– Information model for publishing – Technical notes for mapping the information model to UDDI and
ebXML Registry
Mon, Dec 8, 2003JA-SIG Conference, Miami, FL
WSRP v2.0
• Planned for early/mid 2005
• Markup– Additional fragment rules? – Additional CSS classes?
• Interfaces– Leveraging message level security mechanisms – Enhanced customization mechanisms – Define invalidation caching?
• Cross-portlet coordination– Enabling the Consumer to broker the coordinated response of
portlets to a user interaction
Mon, Dec 8, 2003JA-SIG Conference, Miami, FL
WSRP in uPortal – Next Steps
• WSRP4J• Compatibility testing• Authentication• Consumer URL rewriting• File Upload/Downloading• Use of Registration Interface• Use of Portlet Management Interface• Portlet Browsing and Subscription
Mon, Dec 8, 2003JA-SIG Conference, Miami, FL
uPortal 3.0
Framework
uPortal 2.3
Pluto
uPortal Portlet Roadmap• uPortal 2.3
– Support Portlets (JSR-168) via adapter
• uPortal 3.0– Implement
Portlet Specification (JSR-168)
– Support IChannel via adapter
Portlet Portlet
Pluto
Portlet Portlet
Adapter
Chan Chan
Portlet
Framework
PortletChan Chan
Adapter
Chan Chan
Mon, Dec 8, 2003JA-SIG Conference, Miami, FL
Speakers: Ken WeinerPresentation Title: WSRP in uPortalDate: 12/08/2003Time: 10:15 PM – 11:15 PMRoom: Crystal 1
Speaker Evaluation Info:
The End
Questions ?