Oxford Portal Hierarchy

Introduction

Oxford is looking at arranging sites into a hierarchy and upgrading the portal to allow navigation of this hierarchy.

Requirements

  • Ability to place a site at a node in a hierarchy of sites.
  • Provide a nice URL to each site which reflects the current position in the hierarchy.
  • Allow devolved administration of the hierarchy.
  • Allow the same site to appear at multiple places in the hirrarchy.

Background

Oxford currently has a VLE called Bodington which already has much of the functionality (http://weblearn.ox.ac.uk/site/). Currently we have around 30,000 nodes in our hierarchy. Originally the hierarchy was stored with left and right indexes to allows easy retrieval of child node but this cause unacceptable delays in updating the hierarchy. Currently some parts of the hierarchy are requested very frequently and others very rarely, this is because of the fact that the hierarchy is used to find content and so places close to the root of the hierarchy get it on (almost) every request. Typically when note in a tool Bodington presents all of the available children at the current node that the user is able to see.

Implementation Notes

The hierarchy information will get hit on every portal page refresh which in the event of a flat portal could be every request so the current hierarchy information presented to the user should be easily cache-able. Normally when presenting a hierarchy the path back to the root is displayed and so being able to query parent nodes quickly is required. However as you get closer to the root node the chances that you should be able to get the data from the cache increase.

Providing a quick way to map from a node path (/root/childnode/grandchild) to an instance of that node is one way to speed up the service, this prevent having to enumerate child nodes and scanning for matches.

At the moment permissions for the hierarchy are going to come from the site associated which each node, this is because there is already a UI for managing authz associated with a site and it allows for a simpler user experience (hopefully).

Notes

Currently there is an existing work in progress in:

https://jira.oucs.ox.ac.uk/jira/browse/WL-7 https://source.sakaiproject.org/contrib//tfd/trunk/hierarchy/