310 likes | 399 Views
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?.
E N D
CSDepotComputer 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? • 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
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
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
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
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
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
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
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 connections 2) Statistics only recorded for channels tracking stats – saves space, also time
New CSDepot Channels • Department Message - implements new Message channel type • Course Information channels – implements new Course channel type • Graduate Application • Statistics Manager – reports statistics
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
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
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
Graduate Application Channel – Department Admin/Graduate Committee List View
Graduate Application Channel – Department Admin/Graduate Committee Detailed View
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
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
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>
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.
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
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)
Access Control – Statistics • Reporting controlled by permission to subscribe to Statistics Manager channel • Tracking controlled by Boolean channel statistics tracking flag
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)