New uPortal Contributions from the University of Wisconsin-Madison Jim Helwig University of Wisconsin-Madison Eric Dalquist Unicon, Inc. JA-SIG December 2005
Outline My UW-Madison Motivation Description Contributing back
My UW-Madison Portal Promoted as the place to go for personalized information Available to applicants, students, staff 50,000+ active accounts 1.5M logins per month Nearing end of 2 year migration from a commercial product to uPortal
Platform uPortal Tomcat 5.0 JDK 1.4 Sun Fire v210 PubCookie Layer 4 load balancer
Development Strategy Maximize reuse of existing UW-Madison custom code Only limited use of available uPortal channels Implement as JSR 168 portlets Build missing APIs and services
Modifications, Enhancements, Add-ons Extension Libraries Portal API Abstraction Layer Common Storage
Modifications, Enhancements, Add-ons (cont.) Framework Extensions CONFIG Portlet Mode PREVIEW Portlet mode Extended Statistics Recorder API Abstraction Layer
Modifications, Enhancements, Add-ons (cont.) Personalization UI Portlets WebProxy XML Transform Dynamic Menu Portlet Administrative Swappers
Extension Libraries: Portal API Abstraction Layer Database LDAP User attributes Groups Portal session Portal logger Extra information
Extension Libraries: Portal API Abstraction Layer Is this the Best Solution? Pros –Low implementation time –Light weight JAR Cons –Tightly coupled portlets –Classloader issues
Extension Libraries: Common Storage Generic attribute/object storage API Backed by JDBC File system like structure –Folders –Documents –Attributes
Extension Libraries: Common Storage Pros –Easier to use than JDBC –Single point of credential configuration –No DBA involvement Cons –Does add some overhead
Framework Extensions: CONFIG mode Portlet renders its own UI for publishing Useful for complex portlets (WebProxy)
Framework Extensions: CONFIG mode Modified CChannelManager Uses new CONFIG PortletMode Any Portlet can be used
Framework Extensions: CONFIG mode
Framework Extensions: PREVIEW mode Shows you example of fully configured portlet
Framework Extensions: PREVIEW mode
Framework Extensions: Extended statistics recorder Add portlet specific events to the stats recorder interface New stats are optional Extension to stats recorder interface Implementation is JDBC based New Events –PortletMode/WindowState change, portlet action events, channel render time, page render time,...
User Personalization Built on DLM Implemented as new preferences channel Adds all available content to default layout UI for toggling hidden attribute
User Personalization
Portlets: WebProxy Works with any tag based input Manages remote session Authenticates via BASIC/NTLM/Form Based Page caching URL Re-Writing Content Clipping Proxies binary resources Variable substitution
Portlets: WebProxy
No well-formed XML requirement SAX filter like processing Jakarta Commons HTTP Client Flexible cache configuration
HTTP Client Content Filters Clipping Absolute URL ReWriting Portlet URL ReWriting Caching SAX Event Parser Web Proxy Portlet Session Management Authentication
Portlets: XML Transform Basic XSLT transformation Can read XSL/XML from file system or URLs Configured via portlet preferences
Portlets: Dynamic Menu Portlet Lists of links Customized by group membership Menus can be nested
Portlets: Dynamic Menu Portlet
Portlets: XML Transform Future Development Potential More complete XSL caching Cross-user caching
Portlets: Attribute Swapper UI to change user attributes dynamically Look up other users to copy attributes from
Portlets: Attribute Swapper
Portlets: ID Swapper Assume identity of any portal user Configure which attributes are used for look up
Portlets: ID Swapper
Contributing Back Bug fixes in 2.5.x Work on incorporating non- obtrusive framework modifications Add others to JA-SIG CVS When? “Real soon now”
Thank You, JA-SIG!
Questions? Jim Helwig University of Wisconsin-Madison Eric Dalquist Unicon, Inc.