Streams On Line: A Technical Description


By Randy Wright
rw26@lrw.net
June, 1999

  1. Functional Overview

    Streams OnLine is intended as a web based collaboration system. The original aim was to provide a literacy tool whereby students could write poetry and comment on each other's work, creating an ongoing dialogue. HTML or text can be entered as original works and commentary.

    The system allows each student to revise his or her writing and in so doing, it retains a revision history. Each previous version can be retrieved in order to assess the students process and development.

    Original writings, commentary and any multimedia materials provided by students must be approved by the student's teacher before that material becomes visible to others in the collaboration. The system associates each student with a teacher. Several teachers (and their classes) constitute a single collaboration. Collaborations can include classes in multiple schools if there is appropriate email connectivity. Multiple collaborations can be hosted on a single server.

    Teachers have an expanded menu that allows them to approve student work and access administrative functions. Teachers can also edit the welcome screen and navigation bars.

    The technologies employed for Streams OnLine allow it work in labs or classrooms equipped with older desktop computers such as the Mac IIsi or the 386 PC. The school's desktop computers must be networked and capable of running TCP/IP and some type of web browser. The inter-school collaboration is carried over email, which can traverse slow or intermittent network connections and can even be used over UUCP or Fidonet. These technological constraints allow Streams OnLine to be workable world wide.

  2. Operating platform and requirements

    Streams OnLine is written in the Perl programming language as a web based CGI application. It uses Perl's DBI interface to communicate with an SQL database. The recommended host platform is:

  3. Construction

    A collection of some 26 CGI programs handle the main Streams OnLine workload. Below is a map of the programs illustrating how a student can move from one to the next.

    Common Menu

    Each student has a menu bar at the top and bottom of each screen that allows the participants to move freely among the pages and to run a keyword search on the collaboration's entire contents.

    Teachers are offered additional items on their menu bars. On the top menu bar, they have access to the approval functionality, while on the bottom menu bar they have added access to administrative functionality. Below is a map of the added functionality on a teacher's menu bar:

    Teacher and Administrative Menu

    Streams OnLine does not use cookies, frames, java or javascript in order to produce the web pages used by the students. Because of this, Streams OnLine should be accessible in older labs where only older, memory efficient web browsers can operate. It can also be used by text based browsers.

    Streams OnLine inter-school collaboration is performed by logging the SQL database accesses that cause any sort of changes to the database. These changes are emailed to partner schools each time a teacher approves a student's work. There is a program called repin that receives incoming emailed updates. This program updates the local database and installs any additional files that come in. Because this programs must change ownership of incoming files, it runs in suid root mode. repin is written in 'C' rather than perl.

    In order to bring a new partner school into an existing collaboration, a database synchronization must be performed by all existing partners. A program called sync.pl handles creating and dispatching the synchronizations, and the same repion program that handles updates also recieves synchronizations from remote partner systems.

  4. Database Layout

    Since the database must replicate across mulitple hosts, it is often necessary to have a globally unique record key in most tables. Therefore the primary key in most tables is a string made up to contain the hostname of the server as well as a time number and process-id in order to yield a unique key for each record.

    The database schema that underlies the Streams OnLine package is that of a normalized relational database. An entity-relation diagram below shows the relationships among the tables included in the database. The database is named after the 'collaboration'. For example, if we call a collaboration st3, the database as a whole will be named st3. In addition, the email address for replications will be st3@<host.domain>.

    ER diagram of Streams OnLine Schema

    In this ER diagram, each table is represented by a blue box and the table name is at the top of the table box. The Primary Key, if there is one, is highlighted. Relations between tables are indicated by lines drawn between related fields. At one end of each relation line, there is an indicator of whether the relation is 1 to N, N to 1, 1 to 1 or N to N.