330 likes | 451 Views
Web Services for Remote Portlets, WSRP. Wesley Budziwojski Senior Architect Sun ONE Portal Server. Jun/2003. Agenda. History & Currant Status Portal Server Architecture Sun ONE Portal Server Integration with EIS WSRP Architecture WSRP Interfaces WSRP & Portlets .
E N D
Web Services for Remote Portlets, WSRP Wesley Budziwojski Senior Architect Sun ONE Portal Server Jun/2003
Agenda • History & Currant Status • Portal Server Architecture • Sun ONE Portal Server • Integration with EIS • WSRP Architecture • WSRP Interfaces • WSRP & Portlets
History and Current Status • Started in March/2002 • All key Portal vendors are involved • Just finished Public Review • Expected to be finalized by August
Portal-Common Terminology User Agent Browser Phone, PDA Portlet Container Portlet Network Portal Portlet AggregationPersonalization Security Portlet
Portal Integration EIS Portal Portlet Container SAP Portlet Vendor Specific User Agent (Browser) (PDA) (Phone) PSFT Portlet JDBC JDBC Portlet Network Network JCA Portlet Web Server XML Portlet XML WS Portlet SOAP URL Portlet Html
WSRP Goal • Simplify Dynamic Integration of Remote Applications and Content to Portals
What is WSRP? • Presentation Oriented Web Service • Interface and Protocol • Handles User Interaction • Provides Presentation Fragments tailored for aggregation
WSRP Main Actors • WSRP Producer (portlet runtime) • Portlet • WSRP Consumer (Portal) • End-user
High Level WSRP Actors’ Interactions • Finding Producer • Establishing Consumer-Producer Relationship • Establishing User-Consumer Relationship • Aggregating • Requesting Portal Page • Processing Interaction • Terminating CP Relationships
WSRP Portal Architecture User Agent (Browser) Portal WSRP Consumer SOAP HTTP/S HTTP/S SOAP WSRP Producer Portlet Container Portlet Network Network Portlet Portlet
Sun ONE Portal Architecture WSRP Consumer (remote Portal) HTTP/S SOAP WSRP Producer Portlet Container Portlet Portlet User Agent (Browser) Network HTML/WML VoiceXML Portal Portlet Network WSRP Producer (remote Portal) WSRP Consumer SOAP HTTP/S
Sun ONE Portal Server • Upcoming support for WSRP • Comprehensive integration into the customer's infrastructure (Identity Management, Profile Management, Single Sing-On and Administration via Sun ONE Identity Server) • Developer tools for building Portlets (Portlet Builder plug-in for Forte For Java)
Who will use WSRP? • Portal vendors (Producer & Consumer) • Content/Vertical vendors -Producer (Doc Management, ERP, CRM, etc) • Portlet developers *should never*
WSRP Portlets Context Info • Interaction Parameters • Navigational State • Portlet Mode (VIEW, EDIT, HELP) • Window State (MIN, NORMAL, MAX) • Session • Properties • User Profile Attributes • User Categories
WSRP Interfaces • Service Description (required) • Registration • Portlet Management • Markup (required)
Service Description Interface • Indicates capabilities of the WSRP Producer • Indicates requirements WSRP Consumers must meet to interact with the WSRP Producer
Service Description Info • It indicates if Consumer must register in order to use the Producer • Portlets the Producer offers • Properties Consumers must supply during registration • Extensions the Producer supports. Such as custom portlet modes, custom window states and custom user profile attributes • …
Registration Interface • It allows Consumers to register, modify their registration and deregister from Producers • It allows Consumers to indicate their capabilities to Producers
Registration Info • Consumer info (name, version) • Portlet Modes, Window States and user profile attributes the Consumer will support • Registration properties for the Consumer • Extensions the Consumer supports • …
Portlet Management Interface • It allows Consumers to clone the Portlets offered by a Producer with their own properties • It allows Consumers to destroy cloned Portlets • It allows Consumers to access and modify properties of cloned Portlets
Portlet Management Info • Portlet to operate on (PortletHandle) • Properties to modify • …
Markup Interface • Consumers use this interface when handling requests for portal pages that include Portlets hosted by a Producer
Two Types of Markup Calls • performBlockingInteraction • Invoked only when the User request to the Portal is an action targeted to the portlet • getMarkup • Invoked on every request to the portal, it produces output to create the portal page
Portal & WSRP Requests Portal Portlet Container WSRP Consumer WSRP Producer Portlets A B C User Action on B A performBlockingInteraction(A) interaction B C getMarkup(A) markup getMarkup(B) markup getMarkup(C) markup A’ B’ C’
performBlockingInteraction • It can modify Portlet Navigation State, Portlet properties, Portlet Mode and Window States • It can trigger a redirection • It can create a Session • It can do implicit Portlet cloning (I.e. because of a properties change)
getMarkup • It returns Portlet content • It can create a Session
Creating Portlet URLs • Producer rewriting (templates) • Consumer provides templates • Portlet generates URLs using the supplied templates http://foo.com/{wsrp-urlType}?mode={wsrp-mode}& • Consumer rewriting (tokens) • Producer writes info between tokens • Consumer scans Portlet generated content and rewrites tokens into URLs wsrp-rewrite?wsrp-urlType=###&wsrp-mode=###&name1=value1&.../wsrp-rewrite
Caching • Producers may indicate to the Consumer to cache Portlet content • Types of cache: perUser & forAll • Expiration based cache with validateTag
Portal Common Look & Feel • WSRP defines CSS style names • Links, Fonts, Messages (status, info, error, etc), Sections (header, footer, subheader, body, etc), Tables (header, body, alternate, etc), Forms (label, input, button, icon, etc.), Menus (menu, item, selected, hover, etc) • Portals (Consumer) provides the CSS definition with their style • The Portlets use the define CSS style names
Some of WSRP Benefits • Flexible Architecture - decouples Portal aggregation from Portlet execution • Scalable - allows Portals to use/include Portlets running somewhere else • Plug and Play Solution -by standardizing on interface (WSDL)
Important • Producer implementations SHOULD hide the complexity of WSRP from Portlets [Developers] • Programming a Portlet should be similar to programming a [I.e.] Java Servlet
Thanks! Wesley.budziwojski@sun.com