Academic Computing Stanford University Libraries Technical Overview
Academic Computing Stanford University Libraries System Requirements Solaris or Linux operating system (recommended) Java 1.3 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 scheduled for January –Version 2.2 scheduled for March –Version 3.0 scheduled for September 2003.
Academic Computing Stanford University Libraries Java Web Application Installs as a Web Application Archive (WAR) file. Runs in a Java Servlet Container –We use Tomcat Java Servlet Specification 2.2 Plans to update to Tomcat 4 and Servlet Spec 2.3 Uses only servlets, no JSPs. We use Apache Web Server/Tomcat combination –mod_jk
Academic Computing Stanford University Libraries Oracle Database Oracle 8i (8.1.7) 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)