uportal 2.6 andrew petro ja-sig denver 25 june 2007 © copyright unicon, inc., 2007. some rights...
TRANSCRIPT
uPortal 2.6
Andrew PetroJA-SIG Denver
25 June 2007© Copyright Unicon, Inc., 2007. Some rights reserved. http://creativecommons.org/licenses/by-nc/3.0/us/ Portions borrowed from previous JA-SIG presentations by Andrew and others.
Meet your speaker
• Andrew Petro
• Unicon, Inc.
• Software developer, cooperative support
uPortal lead, and occasional uPortal
consultant
• Previously with Yale University ITS
Technology & Planning
What’s uPortal? – Open Source
• Gratis (no license fee)
• Open source -- New BSD license
What’s uPortal? Collaboration
• uPortal results from the collaboration of higher-
education IT staff and associates
• It’s what happens when 60 committers collaborate
over the project so far.
• John Fereira documentation, Bill Thompson board
liason, Eric Dalquist works to improve portlet support,
MUN builds a web proxy channel, UC Irvine builds a
menu channel – and Yale takes it and runs with it,
implement shared authN needs, …
What’s uPortal: Community
• Many schools use uPortal in production
today.
• uPortal underlies Unicon’s Academus portal
product and SunGardHE’s Luminis portal
product
What’s uPortal? Committers
• Apache-style voting in of new committers
• 16 active committers over the preceding 12
months
• Welcome to uPortal’s newest committer,
Stéphane Bond, CRIM
What’s uPortal? Maintenance
• uPortal 2.5.3.1
– Fixes critical security vulnerability in
RemoteUserSecurityContext
Security Contact Group
What is uPortal? Technology
Authentication: pluggable, CAS
Attribution - PersonDirectory
Groups - GaPs
Layout - DLM
Permissions - GaPs
uPortal’s rendering pipeline
uPortal 2.6.0 status
• Release candidate 2 posted on Friday
2.6.ish code in production at Yale
• Yale grabbed /trunk before the 2.6 RC series
What’s new in uPortal 2.6? Improved UI
• Drag and drop user preferences
– Turned off by default, but try-out-able in default
theme
• XHTML theme available as default
• Fresh, new look
Fixed portlet preferences handling
• Fixed handling of portlet preferences
– Portlets become multiply subscribable with
different prefs, e.g. RSS readers
• Thanks to Tim Carrol for producing a patch,
and Eric Dalquist for merging the patch into
uPortal
Preferences per-portlet-subscription
Improvements
• Pluggable DLM processing pipeline
• Numerous fixes and enhancements
Demo improved JSR-168 support
• Two new JSR-168 portlets
Eric Dalquist / U Wisc-Madison
Drag and Drop user preferences
Status of Drag and Drop
• Works
• Ships with theme/preferences/javascript to
drive it
• Is turned off by default
• Your theme needs upgraded to use it
• Built for DLM.
Drag and Drop demo
• Attempt at live demo…
Grab
Drag
Drop
Oooooh. Aaaaaah.
Or maybe not?
Search for portlet
While seeing context
Layouts are great for dashboards
• But right now I want to find and use a
particular service
Ooooh, Aaaaah.
• Ooooooh.
• Aaaaaah.
How did you do that?
• I didn’t, Jen and Mark did, building on the
work of Pete and others.
• Pluggable DLM processing pipeline
• In dlmContext.xml:
<!-- Uncomment to enable AJAX preferences -->
<bean
class="org.jasig.portal.layout.dlm.remoting.AjaxPreferencesThemeParamInjector"
singleton="false"/>
Now that I’ve got a hammer…
• Alerts-like functionality
• Just-in-time insertion of “stuff”
• Users who like these channels also liked..
Default Div-driven CSS-styled DLM theme
• From Rutgers
• Yeah, it’s got grass at the bottom.
CSyndFeedReader
• Syndicated feed reader channel
• Backwards compatible with CGenericXSLT
RSS channel configuration
• Built on Rome library
• XSLT Java processing (more robust)
• End-user-configuration
Fixes from the 2.5.x series
• Should already all be in 2.6.0
Requirements
• JDK 1.5 or JDK 1.6
• Tomcat 5.something (5.5.23 for least
headaches)
CSqlQuery
• Simple channel
• Deployer provides a SQL query
• It renders the result
• Customizing the XSLT optional
• Oh, about those XSLTs…
JSP Channel
• JSP as alternative to XSLT
• Channel XML XSLT HTML
• Channel Model JSP HTML
Refactored channels away from IMultithreaded*
• Reduced lock thrash
• Simpler
• Easier to debug / log
CGenericXSLT System Cache Scope
• Ability to cache
CGenericXSLT output
across the portal
• How many cached
instances of this
channel would you like
in your portal JVM?
What next for uPortal?
Actually release 2.6
• Soon following this conference.
Platform Maturity
• uPortal Manual
• Convergence and consolidation of wandering
“contributions”
• Inversion of Control
• Codebase pruning
• API formalization
• Project formalization
uPortal Manual wiki space
• Effort launched by Jason Shao
Consolidation
• Neat channels and plugins out there
• “Contributions”
• Pull them into the core uPortal project
How to spend deployer time
More valuable
• Incrementally involving
shared-source solutions
• Collaboration
• Evaluating working
examples
• The concept being
centrally proved
Less valuable
• Finding contributions
• Shoehorning them into
the portal
• Hacking at them to
make them work
• Moving on to the next
fire
• Building local POCs
Candidates
• Webmail
• Rutgers Alerts
• Announcements
• Menu channel
• Survey / Elections /
Fora
• Toro portlets
– (GPL w/ FLOSS
Exception)
• Duke’s portlets released
today
• Done: PBookmarks
• Done: Google Portlet
Higher Education alignment?
• Announcements
• Alerts
• First year checklists
• Directory search
• Computer cluster support
• Helpdesk
• Briefcase
Invert Control - Concept
• *Not* go hog-wild changing everything
– We have working code
• But eliminate the number one impediment to
further incrementally improving uPortal
• uP2-uP3-CAS3 synergy – components for all
DI-able
Invert control - Practice
• Spring WebMVC
– Controllers instead of Servlets
– Wire the most important services
• Synergy with contribution consolidation
Codebase pruning
• Embed CAS
• Adopt new standalone GaPs project
• Adopt new standalone PersonDirectory
Embed CAS
• This is a really excellent idea, if I do say so
myself.
• uP security API feels dated. CAS3 feels
modern. Whole JA-SIG project around
authN.
Pick up CAS features
• Lots of authN provider
options
– LDAP
– Kerberos
– SPNEGO
– OpenID
– Google Account
–
• Lots of server flexibility
– I’d like three authN
methods, except on
Tuesdays
– Login workflow engine
• Documentation
• Discussion
• Scott answers your
questions
You mean you’re forcing CAS on me?
• No. I mean the most efficient way to
implement support for whatever you really
wanted to integrate with is to plug into CAS
rather than plugging into security.properties
• Though proxy tickets do have portal synergy
Migrate to Pluto 1.1
• If there’s a good reason to?
• “Pluto 1.1 aims to simplify the architecture in
order to make it more user and developer
friendly. You should find Pluto 1.1 easier to
get started with, easier to understand, and
easier to embed with your portal.”
• Sounds good to me, let’s do it.
API Formalization
• Just because Jan left the uPortal developer
community, doesn’t mean he wasn’t right.
• What are the “supported” APIs, and what are
incidental APIs?
uPortal’s rendering pipeline
How much theme can we share?
• CSS and images.
• Write skins, not structure and theme
transforms?
Build engineering?
• Eric, Scott, Elliott, etc. tell me that Maven2
works great
• Okay, let’s use that.
To review
• uPortal 2.5.3.1
– General audience release available today
• uPortal 2.6.0 RC2
– Latest release candidate
– Quite feasible to run with this
• uPortal 2.6.0 GA
– Soon
• uPortal 2.6.1, 2.7, etc. ongoing evolution
Andrew [email protected]
Questions?