Creating portal channels |
Sebastian Rahtz, Mike Fraser(Research Technologies
Service)OUCS |
June 2003 |
1. Summary
- What is a portal?
- What is the OUCS portal project?
- What is uPortal?
- Our portal channels
- The portal for users (demo)
- The portal for developers (demo)
- Future directions
2. What is a portal?
A portal provides a framework for
- Retrieving, aggregating (and integrating)
information
-
from distributed remote services
-
according to user preferences
-
in a shared authentication environment
Building portals is not about creating
content. It is less about developing functionality than it is about
building a coherent presentation of existing content and applications tailored
to specific users.
3. Institutional portal
One use of a portal is to provide an integrated view of a university's
information resources:
- For students, teachers,
researchers, academic-support, alumni
- From information exposed by
departments, colleges, academic services, VLE, student/staff records, external
resources
Most of us are both providers and consumers
4.
5. You know the score
6. What is the OUCS PIG?
An informal group from all OUCS sections set up to:
- gain more experience of portals, Web Services and
associated standards
- investigate streamlining existing services and
offering a user-centric view of OUCS information
- encourage the migration of OUCS internal office
processes to the digital information age
- disseminate our and others experiences to the
University
The work to be completed between January and June 2003.
7. Who and what
Lou Burnard (chair) |
Sebastian Rahtz
(secretary) |
Matthew Dovey (service
technical standards) |
Ray Miller (authorisation and
authentication) |
Francisco Pinto (interaction
with national services) |
Pod (authorisation and
authentication) |
Stephen Quinney (uPortal setup
and administration) |
Peter Robinson (content
selection, and design) |
Bruce Shakespeare (OUCS admin
services) |
8. Project Plan
- Establishing a hardware and software base
(result: development/demonstrator environments)
- Service definition (result: consultation
and catalogue of services)
- Service standards (result: how to expose
content for channels)
- Layout and delivery design (result:
developing XSLT styesheets etc)
- Access management (result: integrating
authentication/authorization)
- OUCS internal office (result: audit of
information flow)
9. What really happened
- Demonstrator
- Implementation of uPortal, using Tomcat and Postgres
- Service definition
- A small river of channels
- Service standards
- Increased emphasis on remote web services
- Layout
- Gained control of system XSLT and CSS
- Access management
- Stimulated progress on Kerberos and single sign-on
- OUCS admin
- well, you cannot win them all
and a series of seven seminars about portals.
10. What is uPortal?
- Open Source portal framework
- Developed by JA-SIG HE institutions (with help from
Mellon)
- Co-ordinates output of content from channels
- Implemented as Java servlets, whose output is always
rendered using XML and XSLT
- Almost all management functions are simply portal
channels
- Underlying SQL database for persistent data
(available for applications to extend)
- External authentication/authorisation (eg LDAP)
i.e. close to Weblearn (Bodington) system in terms of infrastructure.
http://www.ja-sig.org/
11. uPortal for the user
What do you get out of the box?
- Tabbed presentation of web pages
- Grid layout of channels (services in boxes)
- User choice and layout of channels
- User-chosen skin for basic colouring etc
The uPortal Quickstart kit can be set up in about 10 minutes, with
its own database and servlet engine.
12. Choosing channels: national vs local
priorities
Hull |
OUCS |
1. Search resources |
1. OUCS news of all kinds |
2. Library administration |
2. Alerts/Access to Weblearn |
3. Access teaching materials |
3. Access to WING |
4. Personal information |
4. My OxLIP/OLIS |
5. Digital resources alerts |
5. Themes/channels by college/dept. |
6. Email access |
6. Events aggregator |
7. Handbook |
7. Job vacancies |
8. Deadline alerts |
8. Bookmarks |
9. Access/update reading lists |
9. Classified adverts |
10. Campus news |
10. Weather |
13. Desire outstripping performance: what we
created
- Search
- Form for google and wwwsearch submission
- My OUCS Courses
- My OUCS Courses
- My Unit
- My Unit's Home Page
- OUCS Feedback
- OUCS Feedback form
- OUCS Hot Links
- Links to the commonly-requested OUCS pages
- OXAM
- Examination Papers
- OLIS
- Search Oxford University Libraries Catalogue
- OxLIP
- OxLIP Oxford Library Information Platform
- Weblearn
- The Oxford VLE, based on Bodington
14. A small slew of RSS news channels
- Humbul
- Displays the last fifteen Web resources catalogued in the Humbul
Humanities Hub
- OUCS Courses
- Shows forthcoming courses at OUCS over the next two weeks
- Library News
- Announcements for library users
- OUCS Services
- Services from OUCS
- Oxford Student
- The Oxford Student
- LTG News
- OUCS Learning Technology Group News
- OESC projects
- Oxford e-Science Centre Projects and Services
15. Enough of all that
Let's see it in action at ... {site long gone!}
16. Getting under the hood
uPortal channels can be set up in a variety of ways:
- Custom-written Java (example: OLIS search)
- RSS news feed (example: OUCS News)
- Images
- Java applets
- Remote channel proxy (talking SOAP to another
uPortal)
- Web proxy, pulling in HTML from a URL (example: OUCS
hot links)
- XML, pulling in XML + XSL from URLs (example: OLIS
OPAC status)
- Inline frames, embedding web site (example: WING)
17. Channel manager
18. Whose job is it?
19. Java channel
Pro
- Not network link, efficient
- Direct read/write access to database
- Good control over interface
- May be shareable with other applications
Con
- Need to learn Java, and API
- You need to do everything through XML and XSLT
- Not directly useable outside the portal
- Needs system access to add
20. Java skeleton (1)
public class CNumberGuess implements IChannel
{
ChannelStaticData staticData = null;
ChannelRuntimeData runtimeData = null;
private static final String
sslLocation = "CNumberGuess/CNumberGuess.ssl";
...
/* Receives channel runtime data from the portal
and processes actions passed to it. The names
of these parameters are entirely up to the channel. */
public void setRuntimeData (ChannelRuntimeData rd)
{
this.runtimeData = rd;
String sGuess = runtimeData.getParameter ("guess");
....
}
21. Java skeleton (1)
/* Output channel content to the portal
* out is a sax document handler
*/
public void renderXML (ContentHandler out) throws PortalException
{
String sSuggest = null;
....
StringWriter w = new StringWriter ();
w.write ("<?xml version='1.0'?>\n");
w.write ("<content>\n");
w.write (" <minNum>" + iMinNum + "</minNum>\n");
w.write (" <maxNum>" + iMaxNum + "</maxNum>\n");
w.write (" <guesses>" + iGuesses + "</guesses>\n");
w.write (" <guess>" + iGuess + "</guess>\n");
.....
XSLT xslt = new XSLT(this);
xslt.setXML(w.toString());
xslt.setXSL(sslLocation, "main",
runtimeData.getBrowserInfo());
xslt.setTarget(out);
xslt.setStylesheetParameter("baseActionURL",
runtimeData.getBaseActionURL());
xslt.transform();
}
22. RSS
Pro
- Trivial to generate
- Widely redeployable
- Applicable to many resources
Con
- Only easy if you are a scripter
- Limited functionality
- No interaction
23. Example of RSS
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rss="http://purl.org/rss/1.0/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:syn="http://purl.org/rss/1.0/modules/syndication/"
xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/">
<rss:channel rdf:about="http://www.oucs.ox.ac.uk/rss/news.rss">
<rss:title>OUCS News</rss:title>
<rss:description>Topical news from OUCS</rss:description>
<rss:link>http://www.oucs.ox.ac.uk/</rss:link>
<rss:items>
<rdf:Seq>
<rdf:li rdf:resource="http://www.ox.ac.uk/it/groups/oxtalent/itawards/winners2003.html"/>
<rdf:li rdf:resource="http://www.oucs.ox.ac.uk/ltg/events/shock/programme.html"/>
<rdf:li rdf:resource="http://www.oucs.ox.ac.uk/ltg/events/dpo.shtml"/>
</rdf:Seq>
</rss:items>
</rss:channel>
<rss:item rdf:about="http://www.ox.ac.uk/it/groups/oxtalent/itawards/winners2003.html">
<rss:title>IT Awards results!</rss:title>
<rss:link>http://www.ox.ac.uk/it/groups/oxtalent/itawards/winners2003.html</rss:link>
<rss:description>The results of the 2003 OxTALENT IT in Teaching and Learning Awards have now been posted on the OxTALENT website. Please click the headline link above. </rss:description>
<dc:created>Tue 17 Jun 13:53</dc:created>
<dc:creator>weitz</dc:creator>
</rss:item>
................
</rdf:RDF>
24. Inline frame
Pro
- Works for any web page
- Any type of interaction
- No brainer to deploy
Con
- No control over display
- No access to database
- Cannot escape
- Newer browsers only
25. XML + XSL
Pro
- Full expressiveness of XML
- Stylesheet under your control
- Efficient central transformation
- Can use uPortal CSS
Con
- No chance for uPortal to rewrite links
- You have to maintain stylesheet
- No access to database
26. SSL files
You tell uPortal which stylesheet to use according to
incoming browser:
<?xml version="1.0"?>
<?xml-stylesheet
href="http://samantha.oucs.ox.ac.uk:8080/ceridwen/rss-1_0x_SS_webbrowser.xsl"
type="text/xsl" media="explorer"?>
<?xml-stylesheet
href="http://samantha.oucs.ox.ac.uk:8080/ceridwen/rss-1_0x_SS_webbrowser.xsl"
type="text/xsl" media="netscape"?>
<?xml-stylesheet
href="http://samantha.oucs.ox.ac.uk:8080/ceridwen/rss-1_0x_SS_webbrowser.xsl"
type="text/xsl"?>
27. Web proxy
Pro
- Can re-use any existing application
- Transformation, if needed, under your control
- HTML rewriting can fix links
- Can use uPortal CSS
- Can be passed information from the database
Con
- Not as efficient as local Java
- Read-only access to parts of database
- Must control link behaviour, cacheing of data
28. Web proxy channel parameters
29. About the link rewriting
A web proxy channel delivers HTML to uPortal, which embeds it in its own
HTML. Should a link
- Be rewritten to that the new page is also rewritten
in the portal, or
- Left alone so that it kicks a new window off
You can choose whether this is done for every link, or under the control of
the original HTML
30. Marking links for inline or not
<p>If you just want to register for a standard email
account, go to the
<a class="uportal-navigation-category"
href="https://register.oucs.ox.ac.uk:6123/cgi-bin/tegu/herald"
target="_blank">Email Registration</a> page.</p>
<p>If you are unfamiliar with email, you should
read our <a class="uportal-navigation-category"
href="newusers/?cw_inChannelLink=1">New Email
Users</a> guide, which will lead you through
the steps involved in setting up
your email account and reading your email. </p>
31. Passing across database information
Our uPortal has access to an LDAP database, so it can
pass over name, email address, unit, address etc.
Alternatively the application can work from an ID:
my $q = new CGI;
my $uid=$q->param('uid');
my $ldappeople = "ou=people,dc=ox,dc=ac,dc=uk";
my $ldaprecord = (Oxford::LDAP::_search("uniqueIdentifier=$uid",$ldappeople))[0];
my $home=$ldaprecord->{oucsCollege};
# now display home page of the college
32. Tasks
33. Pulling the wings off: demonstration
Let us poke some channels
34. Single signon
- authentication and
authorisation are different problems
- OUCS proposes a model of Kerberos-based
authentication at a level above the portal
- This is extensible to many other services across the
university
- The portal will not pass on authentication; each
service will do its own (invisible) check
- LDAP can be used to gather details about someone, in
order to check authorisation
35. The morals
- aggregation and personalization of existing
web-based information services is possible, effective, and powerful;
- a unified and secure central authentication service
is a prerequisite for such a facility;
- the creation of new standards-based web services has
additional benefits above and beyond combining them in a portal;
- there is a need for training and documentation on
how best to take advantage of portal technologies;
- work towards the availability of an institutional
portal should be a major component of the University's IT strategy.
36. What you should take away today:
- The word framework: portals are
about aggregating services, not providing them
- Re-useable web services: putting a
standardized interface on your services is never wasted effort
- Single sign-on: we can do it. Our
users will love it
- It is easy to create RSS news feeds
and simple web services
37. The future: questions
- ISIDORE looms: will it fill this void?
- Is there a will to make an institutional admin-ish
portal?
- Is there a will to make a community portal?
- Is there any point in a portal just for OUCS?
- For how many more years will the Gazette appear in
my pigeon-hole?
38. The flying pig
[Style: Simple
text | Single
file | Normal
| PDF
| XML]
Date: June 2003 (revised 28/07/2003) Author: Sebastian Rahtz, Mike
Fraser (revised rahtz).
© University
of Oxford.