Upload
charles-atkinson
View
216
Download
0
Tags:
Embed Size (px)
Citation preview
JASIG Jun 2007 - Lalit Jairath and Gerrit Bos
Table of Contents
1. University of Guelph background2. Portal Project background3. Campus News challenges4. Technical Overview
• Picklist to Aggregation• Issues and Problems• Solutions• Future Enhancements
5. Live Demo 6. Your turn
JASIG Jun 2007 - Lalit Jairath and Gerrit Bos
University of Guelph
• Mid-size Comprehensive University• ~18,000 students, ~3000 staff/faculty• ~ 1 hour southwest of Toronto• In top 3 since 1997, #1 in 2006• ~1000 Acre Main campus• Satellite colleges across Ontario• 150 year history, University in 1964• Life Sciences + Agriculture + Vet +
JASIG Jun 2007 - Lalit Jairath and Gerrit Bos
IT Structure
• Mixed Central/Decentralized• CCS and Library report to CIO• Infrastructure central
– Email, Web Hosting, Networking, RESnet, Help Centre, Data Centre
• Mostly Local Departmental Support
JASIG Jun 2007 - Lalit Jairath and Gerrit Bos
Portal Project History
• First Portal thoughts in 2002• Two-stage RFP• RFP selected Unicon
Academus• First formal release Sept 2006• Full campus audience• No exclusive content as yet• Moving to uPortal 2.5.3 now
JASIG Jun 2007 - Lalit Jairath and Gerrit Bos
Campus News challenges
• Enhanced Rome portlet (picklist)
• Picklist solution not ideal– Only default feed gets eyeballs– Must browse to see news– Minimal customization– Not all feeds compatible
• Unresponsive feeds an issue• There is a lot of news• There is little news
(sometimes)
JASIG Jun 2007 - Lalit Jairath and Gerrit Bos
Campus News challenges
• Desire for News-at-a-Glance– Editorialized campus news– Numerous departmental feeds– Personal feeds of interest
• Client preferences split– Chronological “River” of news– Browse “Newspaper” style
• Configured vs. Customizable• All feed technologies
supported
JASIG Jun 2007 - Lalit Jairath and Gerrit Bos
Campus News challenges
• Sooo…..We want it all– All the news that’s fit to
aggregate– At-a-Glance: News and No
News– Accommodate people’s
preferences– Doesn’t slow page loads– Intuitively usable– Scales well– Has to “Look Good”
JASIG Jun 2007 - Lalit Jairath and Gerrit Bos
How do we get it all?
• Project Planning – the team’s the thing!
• University of Guelph’s needs– User Interface equal to
competition• JSR-168 compliant
JASIG Jun 2007 - Lalit Jairath and Gerrit Bos
Technical Overview
•Picklist to Aggregation
• Issues and Problems
•Solutions
•Future Enhancements
JASIG Jun 2007 - Lalit Jairath and Gerrit Bos
First news reader solution
• uPortal RSS Portlet issues– RSS formats– New standardizations (Atom)
• Other solutions – RSS Reader Apps– RSS Owl, Google, Microsoft®– Not open, Not Java, Non-
standard
JASIG Jun 2007 - Lalit Jairath and Gerrit Bos
Alternatives
Some other projects underway• Jakarta Feed Parser• Rome Portlet• …For our purposes Rome Portlet
wins:"...ending syndication feed confusion
by supporting all of 'em. " Simon Phipps
JASIG Jun 2007 - Lalit Jairath and Gerrit Bos
Rome Portlet Advantages
• Parses, generates and converts popular RSS and ATOM formats: – RSS 0.90 – RSS 0.91 (Netscape and Userland )– RSS 0.92, RSS 0.93, RSS 0.94 – RSS 1.0, RSS 2.0– Atom 0.3, Atom 1.0
• Publish Atom protocol and MetaWeblog API
JASIG Jun 2007 - Lalit Jairath and Gerrit Bos
Picklist Solution: Rome Portlet
JASIG Jun 2007 - Lalit Jairath and Gerrit Bos
Rome Portlet Value-Adds
• Display Feed Title• Role-based feeds• Mandatory feeds• GUI cleaned up
JASIG Jun 2007 - Lalit Jairath and Gerrit Bos
Issues & Problems - Portal Hang
• Portal Hang: Unresponsive feed
• Java.net package JDK 1.4• uPortal 2.4 bug• Apache HttpClient
– setConnectionTimeOut(2000);– setReadTimeOut(2000);
• AND still no aggregation
JASIG Jun 2007 - Lalit Jairath and Gerrit Bos
Aggregation
Some other solutions:• Java RSS• McLaren• Universal RSS channel (UVIC)
• BUT no true aggregation and only limited customization, so we’re sticking with Rome
JASIG Jun 2007 - Lalit Jairath and Gerrit Bos
Aggregation: Rome Portlet
Rome Aggregator Components
1. Rome API2. Rome Feed Fetcher3. EhCache
JASIG Jun 2007 - Lalit Jairath and Gerrit Bos
public SyndFeed getFeed(SettingsBean bean) throws IOException, FeedException {
return aggregateFeed(bean, bean.getSelectedFeed()));
//return getFeed(bean, bean.getSelectedFeed());}
Issues & Problems - Aggregation
JASIG Jun 2007 - Lalit Jairath and Gerrit Bos
Once again:
“Most of the problems in
Software Engineering can be
solved by using Indirection!”
Aggregation: Aha!
JASIG Jun 2007 - Lalit Jairath and Gerrit Bos
• Convert any RSS/Atom feed type to an RSS/Atom feed of the specified type.
URL feedUrl = new URL(args[1]);
SyndFeedInput input = new SyndFeedInput();
SyndFeed feed = input.build(new XmlReader(feedUrl));
feed.setFeedType(outputType); SyndFeedOutput output = new SyndFeedOutput();
output.output(feed,new PrintWriter(System.out));
Aggregation: Details
JASIG Jun 2007 - Lalit Jairath and Gerrit Bos
FeedAggregator aggregates multiple feeds
List entries = new ArrayList();feed.setEntries(entries);for (int i=1;i<args.length;i++) { URL inputUrl = new URL(feedURL[i]); SyndFeedInput input = new SyndFeedInput();
SyndFeed inFeed = input.build(new XmlReader(inputUrl));
entries.addAll(inFeed.getEntries());}
Aggregation: Details
JASIG Jun 2007 - Lalit Jairath and Gerrit Bos
• Rome Fetcher – supports HTTP conditional gets (i.e. last modified and ETag handling) and GZip encoded feeds
public SyndFeed getFeed(SettingsBean bean,String selectedFeed) {SyndFeed feed = null; try { feed = fetcher.retrieveFeed(new
URL(selectedFeed)); }}
Issues & Problems - Caching
JASIG Jun 2007 - Lalit Jairath and Gerrit Bos
• Prefetch via wget in Cron
01 * * * * wget –output document=/portal/rss/ccsnews.xml -p --timeout=5 http://blogs.uoguelph.ca/ccsnews/blog/default/?flavor=atom
Issues & Problems - Caching
JASIG Jun 2007 - Lalit Jairath and Gerrit Bos
Demo
JASIG Jun 2007 - Lalit Jairath and Gerrit Bos
"I have now deployed your Rome Portlet into our dev portal (WindowsXP / MySQL 4.1) and on a test portal (Solaris 9 /Oracle 9i).
I haven't really explored the pushing of feeds based on roles,
but that is exactly the kind of functionality we were looking for.
The mandatory feeds are a neat feature as well, the portlet looksgood when it's dropped straight in without fiddling around with css etc and editing/removing feeds works a treat on both platforms.
We'll be adding the portlet to our Pilot Portal soon - it'll be a vast improvement to our current solution and I'd definitely recommend
for it to be bundled in future uPortal packages."
London MetropolitanCheers,Sandra
Reactions
JASIG Jun 2007 - Lalit Jairath and Gerrit Bos
I was able to install your portlet cleanly on our development portal (Academus 2.0, based on uPortal 2.4.x). It runs the default configuration very nicely -- What I've seen so far, though, looks really nice. I think our users will really enjoy it.
Le Tourneau
Reactions
JASIG Jun 2007 - Lalit Jairath and Gerrit Bos
Where Do We Go From Here?
• Ajax Enabled – Proxy • OPML support – Rome Nano• More robust handling of
dates– Created, Modified, Published
• Still more intuitive and usable
• Think about “News Ecosystem”
JASIG Jun 2007 - Lalit Jairath and Gerrit Bos
• Clearing House Download• Email Lalit Jairath
[email protected]• How many people would like
to have this bundled in uPortal 2.6/2.7/3.0 ?
•Questions/Discussion
Opportunities – Your turn