Developer Resource

Welcome to the iLabStudio Developer Resource page! iLabStudio is a user platform that allows educators and curriculum experts to build activities around remote online labs -experimental equipment that can be accessed through the Internet. This allows students and educators to carry out real experiments from anywhere at any time, making science labs more real, more engaging, and more accessible for everyone.

If you have an instrument that you would like to connect with the iLabStudio platform, please see details below.

  • iLabStudio Architecture
  • iLabStudio architecture consistes of 5 entities.

    1. Instrument
      At the very bottom of the hierarchy is a physical instrument. An instrument has native drivers that allow users to execute commands via the command line or user interface. To establish remote access, an instrument manager (which we call a Lab Server), is needed to convert commands from external entities to native commands that the instrument can interpret, and then execute those commands.
    2. Lab Server (LS)
      The next level of the hierarchy is a Lab Server that directly interacts with the physical instrument. A Lab Server is responsible for the following tasks:
      1. Maintain a list of whitelisted entities (Service Brokers) that can make requests. Before a Service Broker can make requests to a Lab Server, the Service Broker will need to share its identity (GUID) with the Lab Server. The Lab Server will then need to generate a pass key for the Service Broker GUID. Each request that comes from a Service Broker will contain the Service Broker GUID and the passkey that the Lab Server can validate.
      2. Determine if the instrument is online or offline
      3. Take experimental requests and add to a queue
      4. Validate the experiment request
      5. Remove experiment requests from the queue
      6. Pop experiments from the queue and submit it to the instrument
      7. Retrieve results from the instrument and store them in a local database
      8. Return results to the requester
      9. Estimate the run time of an experiment based on the parameters
      10. Estimate the remaining run time of an experiment that is currently running
      11. Stop an experiment that is currently running
    3. Service Broker
      A Service Broker mediates the transaction between the end user and the Lab Server. There is a many-to-many relation between Lab Servers and Service Brokers, and a single Service Broker will maintain a list of Lab Servers it can communicate with. A Service Broker also maintains permissions for users to access Lab Servers.
    4. iLabStudio Teacher Tool
      The iLabStudio Teacher Tool is where users can create activities for their students, monitor student progress, and provide feedback on student performance. The Teacher Tool contains the following features:
      1. User Registration - Teachers can create accounts for themselves and their students
      2. Groups - Teachers can divide students into groups based on their class and section
      3. Authoring Tool - Teachers can create activity content from scratch or modify existing content
      4. Dashboard - Teachers can assign activities they copied or created to students as homework and track their progress via the Dashboard
      5. Feedback Tool - Teachers can provide feedback for completed assignments via the Feedback Tool
      6. RestFul API - There is also a RestFul API for the student interface to consume all the assignment/feedback data
    5. iLabStudio Student Interface
      The iLabStudio Student Interface is a separate interface for students to access and complete their activity via any device with Internet access, including tablets and smart phones. The Student Interface interacts with the Teacher Tool via the RestFul API. The student interface has the following features
      1. Registration - Students can register and connect with a teacher account
      2. Assignment/Inbox – Students can view a list of assignments from teachers
      3. Start/Resume - Student work is automatically saved and can be completed at a later time
      4. Experiments – Students complete remote experiments as a step of their assignment
      5. Browse - Browse labs that are publicly available but not part of an assignment
      6. Profile - View/Update profile
  • Remote instruments connected to iLabStudio
  • iLabStudio currently has three remote instruments integrated with its platform with two additional in development

    1. Geiger Counter located at University of Queensland, Australia (Webcam)
    2. Geiger Counter with Radiation Shielding also located at University of Queensland, Australia (Webcam)
    3. Powder X-Ray Diffractometer located at Northwestern University, Evanston, IL, USA (Webcam)
    4. Total Organic Carbon/Nitrogen Analyzer located at Tompson Rivers University, British Columbia, Canada (In Development)
    5. Euglena Lab located at Stanford University, California, USA (In Development)
  • iLabStudio Users Worldwide (11000+ Users 17000+ Experiments)
  • Integrating an instrument with iLabStudio
  • If you have an instrument that you would like to connect with the iLabStudio platform and make it available to over 11000 users world wide, you will need to implement a Lab Server described in Section 2 under iLabStudio Architecture. The Service Broker and the Lab Server use SOAP protocol to communicate and exchange messages in a SOAP envelope. Most of the responsibilities of a Lab Server described in Section 2 under iLabStudio Architecture can be mapped to a message pair below.

    1. Get Lab Status
      Request
      Response
    2. Get Queue Info
      Request
      Response
    3. Submit Experiment
      Request
      Response
    4. Get Experiment Status
      Request
      Response
    5. Retrieve Experiment Result
      Request
      Response
    6. Cancel Experiment
      Request
      Response
    7. Validate Experiment Parameters
      Request
      Response

If you have any question please contact our development team: ilab-dev@sesp.northwestern.edu