Academic Computing Stanford University Libraries Technical Overview of CourseWork 3.0 January 2004
Academic Computing Stanford University Libraries System Requirements Solaris or Linux operating system (recommended) Java or later Java Servlet Container Oracle 8i or later Apache Web Server (recommended) JDBC Oracle DB Servlet Container
Academic Computing Stanford University Libraries Version History Major releases each Fall, minor maintenance updates in Winter and Spring: –Version 1.0 released Fall –Version 1.1 released January –Version 1.2 released March –Version 2.0 released September –Version 2.1 released January –Version 2.1 open source released in Nov –Version 2.2 released March –Version 2.5 released May –Version 2.5 open source released June –Version 2.7 released July –Version 3.0 released September –Version 3.1 released January –Version 3.0 open source released January 2003.
Academic Computing Stanford University Libraries Java Web Application Installs as a Web Application Archive (WAR) file. Runs in a Java Servlet Container –Coursework v3.0 uses Tomcat –We used Tomcat 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
Academic Computing Stanford University Libraries Oracle Database Oracle 8i (8.1.7) –Coursework v3.0 and previous version uses Oracle –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
Academic Computing Stanford University Libraries 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
Academic Computing Stanford University Libraries Core Objects Person, Nexus, Tool, Content NexusPerson Tool Content
Academic Computing Stanford University Libraries 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.
Academic Computing Stanford University Libraries 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
Academic Computing Stanford University Libraries 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 grey. Or in Java Code: DTLObject mainDTL = new DTLObject(); mainDTL.put(“COLOR”, “#CCCCCC”);
Academic Computing Stanford University Libraries Tool Model Two servlets – student view and admin view –Eg, Announcements.java and AdminAnnouncements.java edu.stanford.coursework. package. –Uses same object model as core object DTL Templates Database tables
Academic Computing Stanford University Libraries CourseWork Documentation Site –Javadocs –Database Schemas –DTL Javadocs and instructions –3 rd party packages used by CourseWork (oreilly, etc)