Mon, Dec 8, 2003 JA-SIG Conference, Miami, FL Ken Weiner, UNICON, Inc. WSRP in uPortal

Preview:

Citation preview

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 ?