API Changes We'd Like to See

  1. Support for multiple experiment engines (running different, perhaps unrelated experiments) on a single lab server. The current framework assumes that each experiment will have its own Lab Server. We can imagine a number of scenarios where a single Lab Server could provide several different experiments to students.

    Every communication between the Service Broker and the Lab Server should include the "labServerID" number, so that web services on the Lab Server can route messages to the proper experiment engine. Currently, the Service Broker API assumes a one-to-one mapping between labServerID numbers and IP addresses. It should be possible to have a many-to-one mapping between labServerID numbers and IP addresses.

  2. A method for the client to retrieve the user's name from the Service Broker. We would like the headers of our exported files to read something like:
    % Matlab data file
    % Produced by 6.302 Client version 3.1
    %
    % Created by johndoe on Wed Jul 28 10:38:20 EDT 2004
    % while running the 6.302 Thermal Experiment
    Unfortunately, the client cannot determine the user's name. Users are required to log in and authenticate to the Service Broker, but the Lab Client can't ask "whoami?"

  3. A method to retrieve data from the Lab Server without requiring authentication. We would like to retrieve data from the Lab Server (current status, or a webcam picture) without requiring that the user log into the Service Broker and without exposing our Lab Server to the world (ideally, without revealing its location at all). Perhaps the Service Broker computer could provide a simple proxy service for this purpose?

    For example, a web client could request

    http://ilab.mit.edu/proxy/6.302/status.html
    and the Service Broker would retrieve
    http://labserver302.eecs.mit.edu/status.html
    and forward it to the client. There are several reasons that we prefer this approach:

Thanks for reading.


The 6.302 WebLab Team