Top Banner
CSDepot Computer Science Department Portal Final Project Report In partial fulfillment of the requirements for a Master’s Degree in Computer Science Presented by Rebecca Twigg For Dr. Edward Chow Dr. Charlie Shub Dr. Tim Chamillard May 30, 2006
31

CSDepot Computer Science Department Portal

Feb 25, 2016

Download

Documents

Stefan Tanasa

CSDepot Computer Science Department Portal. Final Project Report In partial fulfillment of the requirements for a Master’s Degree in Computer Science Presented by Rebecca Twigg For Dr. Edward Chow Dr. Charlie Shub Dr. Tim Chamillard May 30, 2006. What is a Portal?. - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: CSDepot Computer Science Department Portal

CSDepotComputer Science Department Portal

Final Project ReportIn partial fulfillment of the requirements for a

Master’s Degree in Computer Science

Presented by Rebecca Twigg

For

Dr. Edward ChowDr. Charlie Shub

Dr. Tim Chamillard

May 30, 2006

Page 2: CSDepot Computer Science Department Portal

What 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

Page 3: CSDepot Computer Science Department Portal

What 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

Page 4: CSDepot Computer Science Department Portal

The 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-

SIG’s website:http://www.ja-sig.org/wiki/homepage.action

Page 5: CSDepot Computer Science Department Portal

System 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

Page 6: CSDepot Computer Science Department Portal

XML

• 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

Page 7: CSDepot Computer Science Department Portal

XSLT• 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

Page 8: CSDepot Computer Science Department Portal

CSDepot• 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

Page 9: CSDepot Computer Science Department Portal

Statistics 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 connections2) Statistics only recorded for channels tracking stats – saves space, also time

Page 10: CSDepot Computer Science Department Portal

New CSDepot Channels

• Department Message - implements new Message channel type

• Course Information channels – implements new Course channel type

• Graduate Application • Statistics Manager – reports statistics

Page 11: CSDepot Computer Science Department Portal

Department 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

Page 12: CSDepot Computer Science Department Portal

Department Message – Editing

Page 13: CSDepot Computer Science Department Portal

Course 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 channel’s

ICCRegistry– ViewerURL object is bound in viewer channel’s JNDI context – When link is selected in course channel, URL is passed to

viewer channel’s 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

Page 14: CSDepot Computer Science Department Portal

Course Information Channel - Editing

Page 15: CSDepot Computer Science Department Portal

Course Information Channel - Viewing

Page 16: CSDepot Computer Science Department Portal

Graduate 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

Page 17: CSDepot Computer Science Department Portal

Graduate Application Channel – Guest View

Page 18: CSDepot Computer Science Department Portal

Graduate Application Channel – Department Admin/Graduate Committee List View

Page 19: CSDepot Computer Science Department Portal

Graduate Application Channel – Department Admin/Graduate Committee Detailed View

Page 20: CSDepot Computer Science Department Portal

Statistics 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– User’s access count totals – Dates of most recent accesses

• Statistics caching is available as option in portal.properties file– Enabled provides faster performance, but won’t show current

statistics until Servlet container is rebooted– Caching occurs at document and channel levels– Default is caching disabled

Page 21: CSDepot Computer Science Department Portal

Statistics Manager Channel – List View

Page 22: CSDepot Computer Science Department Portal

Statistics Manager Channel – Detailed View

Page 23: CSDepot Computer Science Department Portal

New 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

Page 24: CSDepot Computer Science Department Portal

New Course and Message Channel Types in Channel Manager

Page 25: CSDepot Computer Science Department Portal

Course Channel Type CPD• <channelDef>

• <description>• This is a channel which allows the creation of a customizable course channel.• </description>

• <class>org.jasig.portal.channels.CCourse</class>

• <params>• <step>• <ID>1</ID>

• <name>Channel Parameters</name>

• <description>• Enter the course number and name in the form below.• </description>

• <parameter modify="publish-only">• <name>xmlUri</name>• <label>XML URI</label>• <type base="string" input="text" display="text">• <length>40</length>• <maxlength>2000</maxlength>• </type>• <example>mutable/CCourse/CS100.xml</example>• </parameter>

• <parameter modify="publish-only">• <name>instructor</name>• <label>Instructor Username</label>• <type base="string" input="text" display="text">• <length>25</length>• <maxlength>35</maxlength>• </type>• <defaultValue>400</defaultValue>• </parameter>

• </step>• </params>

• <controls>• <control type="edit" include="yes" override="no"/>• <control type="about" include="no" override="no"/>• <control type="help" include="no" override="no"/>• </controls>

• </channelDef>

Page 26: CSDepot Computer Science Department Portal

Course Channel Type – Course Info Step

Page 27: CSDepot Computer Science Department Portal

CSDepot 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.

Page 28: CSDepot Computer Science Department Portal

Access 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

Page 29: CSDepot Computer Science Department Portal

Access 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)

Page 30: CSDepot Computer Science Department Portal

Access Control – Statistics

• Reporting controlled by permission to subscribe to Statistics Manager channel

• Tracking controlled by Boolean channel statistics tracking flag

Page 31: CSDepot Computer Science Department Portal

Conclusion• 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)