Title: CSDepot Computer Science Department Portal
1CSDepotComputer Science Department Portal
- Final Project Report
- In partial fulfillment of the requirements for a
- Masters Degree in Computer Science
- Presented by
- Rebecca Twigg
- For
- Dr. Edward Chow
- Dr. Charlie Shub
- Dr. Tim Chamillard
- May 30, 2006
2What is a Portal?
- A webpage aggregating content and applications
from disparate sources - Content unit is a channel, or portlet
- uPortal mostly refers to channels - Sun One
Server term - Portlet is an emerging term associated with
standards JSR-168, WSRP - Commercial portal solutions Plumtree, IBM, SAP
and BEA - high license fees - Open-source enterprise portals include Apache
Jetspeed, eXo, jPorta, Liferay, JBoss
3What is uPortal?
- Free open-source J2EE portal framework targeting
higher education institutions - Developed collaboratively by JA-SIG, Princeton,
Cornell, others ongoing effort - Based on J2EE standards, including Java, JNDI,
JDBC, JSP, Java Servlets, XML, XSLT - Many universities have implemented uPortal see
list at www.uPortal.org
4The uPortal Framework
- uPortal is not a portal, but a portal framework
a reusable design - uPortal provides a skeletal set of Java classes,
XML and XSL files from which a custom campus
portal can be developed - Not intended as a turnkey solution
- uPortal documentation on wiki at JA-SIGs
website - http//www.ja-sig.org/wiki/homepage.action
5System Requirements
- Server Any platform that can run Java 2 Runtime
Environment - - CSDepot tested with Windows XP, Linux, UNIX
- - uPortal also implemented on Solaris,
- MacOS X.
- Browser CSDepot tested with IE 6.0, Netscape 8.1
- Development Requires Java Development Kit
- - JDK 1.4 Standard Edition
- - Versions 1.4.2_08, 1.4.2_10, 1.4.2_11 work
6XML
- Transient portal data
- Can be thought of as tree structure
- XML sources
- - Built from portal database data (e.g. layout
structures) - - Written in Java classes
- - Stored on application server as XML file
- - Accessed from external source, e.g. as RSS
stream
7XSLT
- Transforms XML from one tree structure to another
- Involves selection of node or set of nodes in XML
tree - Performs processing on selected nodes/nodesets to
produce transformed XML tree - Portal layouts undergo first a structure
transformation to produce initial structure, e.g.
tab-column structure for HTML browsers - Layouts then undergo a theme transformation using
XSLT stylesheets to produce mark-up, e.g. XHTML,
read by browser
8CSDepot
- Prototype portal developed for UCCS Computer
Science Department - Implements and extends uPortal framework
- Holistic extensions include
- - Statistics tracking
- - Editable channels
- - Editing permissions
- - Per-channel publishing permissions
- UCCS skin, layouts and portal users
- CSDepot application can be viewed at
https//wind.uccs.edu/CSDepot
9Statistics Tracking
- StatsRecorder service is started when portal is
initialized with new session creation,
StatsListener is added - When portal user adds a new channel to layout,
instantiates a channel or targets a channel,
channel-specific entry is created in HashTable in
RDBMStatsRecorder. - When user logs out, database table
UP_CHANNEL_STATS is updated with HashTable
contents. - Channel must have statistics tracking enabled to
track statistics - Design optimizations decisions
- 1) Statistics only recorded in database when
user logs out saves time and database
connections - 2) Statistics only recorded for channels
tracking stats saves space, also time
10New CSDepot Channels
- Department Message - implements new Message
channel type - Course Information channels implements new
Course channel type - Graduate Application
- Statistics Manager reports statistics
11Department Message Channel
- Implements new Message channel type
- Channel is editable by users with editing
permissions - Access is controlled via presence/absence of edit
button - GenericXSLT as base, adding code to channel to
handle edit event - If edit event is received, edit form displayed
- New XML file is re-created each time message is
edited
12Department Message Editing
13Course Information Channel
- Implements new Course channel type
- Implements inter-channel communication from
uPortal ICC demo - Uses JNDI context and event handlers to
communicate - Viewer channel is registered as a listener in
course channels ICCRegistry - ViewerURL object is bound in viewer channels
JNDI context - When link is selected in course channel, URL is
passed to viewer channels JNDI context - Event causes viewer channel to retrieve bound
ViewerURL object and update display - Hyperlink text and underlying URL values can be
edited by course instructor - Other course information can also be edited
14Course Information Channel - Editing
15Course Information Channel - Viewing
16Graduate Application Channel
- Deferential view based on editing permissions
- Guests can submit new graduate application online
- Applicants can later check their application
status - Department administrators and graduate committee
members have edit permissions - Are presented with list of applicants
- Can select individual applicant and view details,
update transcript and/or application status - When status of an application is updated to
Transcripts Received, graduate committee
members are notified that new applicant is ready
for evaluation
17Graduate Application Channel Guest View
18Graduate Application Channel Department
Admin/Graduate Committee List View
19Graduate Application Channel Department
Admin/Graduate Committee Detailed View
20Statistics Manager Channel
- Displays usage statistics for all channels
- List shows total times channel has been
instantiated and targeted - Channel is instantiated when user clicks tab on
which channel is located - Channel is targeted when user interacts with
channel, e.g. clicks link, button, etc. - Details provide list of users who have accessed a
channel - Users access count totals
- Dates of most recent accesses
- Statistics caching is available as option in
portal.properties file - Enabled provides faster performance, but wont
show current statistics until Servlet container
is rebooted - Caching occurs at document and channel levels
- Default is caching disabled
21Statistics Manager Channel List View
22Statistics Manager Channel Detailed View
23New Channel Types
- Course and Message channels have respective new
channel types - New .cpd file results in creation of
type-specific steps - Steps seen during publishing via Channel Manager
channel - Course channel also has extra Course Info step
before General Settings step - Entering course information results in the
pre-population of several publishing step forms
24New Course and Message Channel Types in Channel
Manager
25Course Channel Type CPD
- ltchannelDefgt
- ltdescriptiongt
- This is a channel which allows the creation
of a customizable course channel. - lt/descriptiongt
- ltclassgtorg.jasig.portal.channels.CCourselt/classgt
- ltparamsgt
- ltstepgt
- ltIDgt1lt/IDgt
- ltnamegtChannel Parameterslt/namegt
- ltdescriptiongt
- Enter the course number and name in the
form below. - lt/descriptiongt
- ltparameter modify"publish-only"gt
26Course Channel Type Course Info Step
27CSDepot Access Control
- New CSDepot channels implement role-based
security - Security is determined by user group
permissions to portal activity for each channel - Activities include subscribe, publish and edit
- New to CSDepot All editing permissions
- uPortal 2.4.1 All-or-nothing publishing
permissions - New to CSDepot Channel-specific publishing
permissions - For example, allows instructors to change channel
definition of their channels track statistics,
assign channel subscription permissions, etc.
28Access Control - Message and Course channels
- Editing is controlled, only users/groups with
permission to edit may edit channel - Department Message anyone in dchair group can
edit - Course channels instructor can edit
- Edit button is present if channel is editable AND
user has editing permissions - These are checked when user layout XML is created
and when user adds channel to layout - Controlled via new channel XML attribute
isUserEditable - If isUserEditaable set to true, edit button is
added during theme transformation
29Access Control Graduate Application
- Deferential view controlled via editing
permission assigned to user/group - Channel is not defined as editable, so edit
button does not appear in channel title bar - Overloading of editing permissions
- If user/group has editing permissions, options
presented are those to show applicant lists - Otherwise options are to apply or check
application status (current portal user only)
30Access Control Statistics
- Reporting controlled by permission to subscribe
to Statistics Manager channel - Tracking controlled by Boolean channel statistics
tracking flag
31Conclusion
- CSDepot provide a working prototype for further
study and development - UCCS has been investigating uPortal for almost a
year - Pros
- Inexpensive portal solution framework student
labor is free - Provides ability to implement large degree of
customization - Flexible Java offers platform independent code
XML/XSLT offer data independence - Cons
- Steep learning curve many technologies to
learn - Java, Servlets, JSP, JDBC, JNDI, XML, XSLT, SQL,
JavaSript, XHTML, Tomcat, Ant - Possibly also WML, UDDI, SOAP, WSRP-Portlets,
JSR-Portlets - Application itself contains large number of files
- 12,300 files in development package (including
Tomcat, Ant and HSQL)