120 likes | 194 Views
Technical Overview of CourseWork 3.0. January 2004. System Requirements. Solaris or Linux operating system (recommended) Java 1.4.1 or later Java Servlet Container Oracle 8i or later Apache Web Server (recommended). Oracle DB. JDBC. Servlet Container. Version History.
E N D
Technical OverviewofCourseWork 3.0 January 2004
System Requirements • Solaris or Linux operating system (recommended) • Java 1.4.1 or later • Java Servlet Container • Oracle 8i or later • Apache Web Server (recommended) OracleDB JDBC Servlet Container
Version History Major releases each Fall, minor maintenance updates in Winter and Spring: • Version 1.0 released Fall 2001. • Version 1.1 released January 2002. • Version 1.2 released March 2002. • Version 2.0 released September 2002. • Version 2.1 released January 2003. • Version 2.1 open source released in Nov 2003. • Version 2.2 released March 2003. • Version 2.5 released May 2003. • Version 2.5 open source released June 2003. • Version 2.7 released July 2003. • Version 3.0 released September 2003. • Version 3.1 released January 2004. • Version 3.0 open source released January 2003.
Java Web Application • Installs as a Web Application Archive (WAR) file. • Runs in a Java Servlet Container • Coursework v3.0 uses Tomcat 4.1.24 • We used Tomcat 3.2.3 for all previous versions • Java Servlet Specification • Coursework v3.0 uses servlet 2.3 API • We used servlet 2.2 API for all previous versions • Uses only servlets, no JSPs. • We use Apache Web Server/Tomcat combination (mod_jk) • Coursework v3.0 uses Apache 2.x • We used Apache 1.3.x for all previous versions
Oracle Database • Oracle 8i (8.1.7) • Coursework v3.0 and previous version uses Oracle 8.1.7 • We uses Oracle 9i for v3.1 versions • Oracle 8i JDBC drivers (classes12.zip) • Thin Driver or OCI-8 driver. • OCI-8 requires installation of Oracle client on app server. • Oracle 8i Connection Pool implementation • Single user schema
CourseWork Web Application • Core packages • edu.stanford.coursework.core • edu.stanford.coursework.common • Tool packages • edu.stanford.coursework.coursehome • edu.stanford.coursework.announcements • Etc • Dynamic Templating Language (DTL) • edu.stanford.coursework.dtl • Servlets • DTL Templates
Tool Person Nexus Content Core Objects • Person, Nexus, Tool, Content
Core Objects (continued) • Person Object • Represents a user in CourseWork • Nexus Object • Represents a course, a section, a department, etc. • Grouping of people, tools, and content. • Definable NexusTypes. • Tool Object • A tool that shows up in the navigation bar • Allows tools to be turned on/off for each Nexus • Content Object • A single piece of content that is used in a Nexus. • Referenced by URL and/or filepath.
Person Object (example object model) • Person.java • fields map to database fields • get and set methods for each field • toDTLObject method • PersonController.java • Methods to get, create, save, remove object in DB • Other static methods to use/manipulate object • PersonSQL.java • SQL query strings used in preparedStatements to interact with the database
Dynamic Templating Language (DTL) • Developed at Highwire Press, Stanford University • Installs as a JAR file • Parsed HTML Templates with rich variable replacement capabilities • Also provides date/time display functionality and configuration file parsing functionality for CourseWork • Simple Examples: [[VARDEF $COLOR]]#CCCCCC[[/VARDEF]] This font color is <FONT COLOR=[[$COLOR]]>grey</FONT>. Or in Java Code: DTLObject mainDTL = new DTLObject(); mainDTL.put(“COLOR”, “#CCCCCC”);
Tool Model • Two servlets – student view and admin view • Eg, Announcements.java and AdminAnnouncements.java • edu.stanford.coursework.<toolname> package. • Uses same object model as core object • DTL Templates • Database tables
CourseWork Documentation Site http://coursework-dev.stanford.edu/docs • Javadocs • Database Schemas • DTL Javadocs and instructions • 3rd party packages used by CourseWork (oreilly, etc)