Presentation is loading. Please wait.

Presentation is loading. Please wait.

CSDepot Computer Science Department Portal

Similar presentations


Presentation on theme: "CSDepot Computer Science Department Portal"— Presentation transcript:

1 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

2 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

3 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

4 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:

5 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

6 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

7 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

8 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

9 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

10 New CSDepot Channels Department Message - implements new Message channel type Course Information channels – implements new Course channel type Graduate Application Statistics Manager – reports statistics

11 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

12 Department Message – Editing

13 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

14 Course Information Channel - Editing

15 Course Information Channel - Viewing

16 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

17 Graduate Application Channel – Guest View

18 Graduate Application Channel – Department Admin/Graduate Committee List View

19 Graduate Application Channel – Department Admin/Graduate Committee Detailed View

20 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

21 Statistics Manager Channel – List View

22 Statistics Manager Channel – Detailed View

23 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

24 New Course and Message Channel Types in Channel Manager

25 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> Enter the course number and name in the form below. <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> <name>instructor</name> <label>Instructor Username</label> <length>25</length> <maxlength>35</maxlength> <defaultValue>400</defaultValue> </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>

26 Course Channel Type – Course Info Step

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

28 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

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

30 Access Control – Statistics
Reporting controlled by permission to subscribe to Statistics Manager channel Tracking controlled by Boolean channel statistics tracking flag

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


Download ppt "CSDepot Computer Science Department Portal"

Similar presentations


Ads by Google