08/09/11

dSurvey is a web-based software package that dynamically implements a variety of surveys

dSurvey uses

1. XML and XHTML files to specify the survey instrument.

2. “client” and “administrator” software components

3. software to implement a “server” component

1. The software components of dSurvey

The XML and XHTML files are not a concern, so I won’t discuss them. However, the client, administrator, and server software components work together, so I describe them below. Note that I use some specialized terminology, so if you might want to refer to the “Terminology” section at the bottom of this document

1. Client software.. The client software displays screens of information (using a browser such as FireFox) to participants.

It controls what screens to show when, what information to request (ie. text boxes to fill in), and how to submit this information. Typically, many instances of client software are running at the same time (one for each of a dozen or so participant,s each of whom is sitting in front of his own computer).

2. Administrator software. This controls the state of the survey, and tells the clients what to do next (i.e.; when to display a new screen).

Note that this control can be participant-specific -- the administrator can send different instructions to different clients. It also obtains information submitted by participants, processes it, and uses this to effect the instructions sent back to the various participants.

Typically, just one instance of the administrator software is running (typically, it will be running on the administrators computer).

3. Server software. This handles communication between clients and the administrator.

It also stores information, both permanently, semi-permanently, and temporarily. Just one instance of the server software is running on a dedicated web (http) server.

Typically, this dedicated http server is NOT the same computer as the administrator's computer (and it never is the same computer as a participant's computer!)

The client and administrator components are written in javascript (using a Firefox dialect). It uses AJAX style calls to communicate with the server.

The server component is written for a, basically obsolete, http server called SREhttp/2.

Basically, the client and the administrator do NOT directly talk to each other --they both communicate with the server.

- You can think of the server acting as a post office – it receives information, stores it, and passes it on upon request.

2. Advantages and disadvantages of dSurvey

  Feature | Advantage | Disadvantage
  Web accessible | Conceivably, you can run an experiment from anywhere – all you need are computers with web access | If one's connections are slow, or if the distant server has problems, you are in trouble.
  Use of XHTML | An XHTML syntax is used to specify screens. This includes extensions (tag names) that make it fairly easy to specify dynamic content (content whose value depends on participant specific data and on data that changes over the course of time). And this specification requires little or no understanding of how client-server communications are structured. | dSurvey" uses of a "customized" XHTML syntax, one that is more-or-less unique to "dSurvey". This means the instrument designer must learn a unique syntax, for which there are not readily available GUI tools. In other words, one must hand code the content (although starting with a good HTML editor and tweaking it afterwards could be done). Note that dSurvey does include some tools to help program its various components, but they are fairly primitive.
  Use of Javascript | dSurvey heavily uses Javascript. This means that results calculations can be programmed in a well known language. Furthermore, a number of functions are provided that make it relatively easy to retrieve and save parameters (including participant specific parameters), data submitted by participants, and the results of prior calculations. And it is straightforward to communicate the results of these calculations to participants and to the administrator. | dSurvey depends on javascript to do calculations. Some calculations can be done by dSurvey's built in features, but for anything slightly complex the easiest approach is to use javascript functions created by the instrument designer. While use of external software (i.e. excel) is supported, it requires a moderately convoluted approach (saving data, running the external software, reading the data, further processing of the data). Thus, effective use of dSurvey is enhanced by a familiarity with javascript. Moreover, dSurvey is written to work with FireFox (ECMA compliant) javascript. Sadly, this doesn't always work under IE.
  Client-centric structure | The broad outline of a survey session is specified in XML "specification files" that allow for a dynamic set of treatments (that can be changed mid-session). This reduces server load, and provides a moderately intuitive structured mechanism. | The use of a proprietary means of specifying how treatments are presented. Its XML "specification files" requires hand-coding, as there are no style sheets (XSLT) or schema to validate or otherwise assist in their design. While providing flexibility, the syntax of these specification files is unique to dSurvey

Terminology
Screen | a web page - with text, layout, input elements, etc. Screens can be updated on the fly (with just a few items on the screen changed), or completely replaced.
input elements | areas on a "screen" where people can enter information (say, enter a text field where a numeric value can be typed in, or checkbox that can be clicked on with one’s mouse).
Participant | someone who is participating in a survey.
Client | a synonym for "participant", but refers to the software running on the participant's computer, not the actual human being viewing a "screen" and entering information
Web based | information exchange is done via http calls. web browsers are used to display screens of information.
Dynamic survey | Among other attributes … Screen output can be refreshed on the fly, without any action by survey participants The content of the survey can change, based on the choices of the survey participants and survey administrator
Survey | A survey can be any type of information gathering from one or more people. For example: Questionnaire: people independently fill out a set of questions, that might span several screens and whose questions might depend on one’s answers to earlier questions Auction: each member of a group of people provide information and make choices, with outcomes dependent on what other people chose Experiments: like an auction, but there an be multiple rounds of choices, with complex relationships allowed between different participants For simplicity, we use survey to refer to all of the above.
State of a survey | A survey instrument can contain many different possible screens, and each of these screens can contain areas whose content depend on information supplied by the participants and the administrator. The “state of the survey” refers to these set of information – hence just what each participant will be viewing.
Instrument | An instrument incorporates instructions, descriptive and control data, and text/images to be displayed. It specifies what a participant sees, at different times and as new information becomes available.