Oxford University

Oxford University Computing Services

Internal Staff Web Site

Creating portal channels



Creating portal channels
Sebastian Rahtz, Mike Fraser(Research Technologies Service)OUCS
June 2003

1. Summary

2. What is a portal?

A portal provides a framework for

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:

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:

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

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?

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?

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:

  1. Custom-written Java (example: OLIS search)
  2. RSS news feed (example: OUCS News)
  3. Images
  4. Java applets
  5. Remote channel proxy (talking SOAP to another uPortal)
  6. Web proxy, pulling in HTML from a URL (example: OUCS hot links)
  7. XML, pulling in XML + XSL from URLs (example: OLIS OPAC status)
  8. Inline frames, embedding web site (example: WING)

17. Channel manager

18. Whose job is it?

19. Java channel

Pro

Con

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

Con

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

Con

25. XML + XSL

Pro

Con

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

Con

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

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

35. The morals

  1. aggregation and personalization of existing web-based information services is possible, effective, and powerful;
  2. a unified and secure central authentication service is a prerequisite for such a facility;
  3. the creation of new standards-based web services has additional benefits above and beyond combining them in a portal;
  4. there is a need for training and documentation on how best to take advantage of portal technologies;
  5. 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:

37. The future: questions

38. The flying pig


University Crest [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.