## Sakai IMS Tool Interoperability Test Environment

The basic idea of this is to provide some source code to interact with IMS Tool Interoperability in PHP - to come up with some simple tests to make it easier to develop TI tools and experiment with TI with less overhead than in Java.

And since part of the goals of TI are to empower non-Java developers - this code is a step in that direction. There are some notes here that detail some difficulties with nusoap. This code should *not* be thought of as a reference implementation - at least not in its current state. This is some technology to play with and provides a convienent endpoint to experiment with IMS TI inside of Sakai. It is not a bad set of samples using WSDL with nusoap although I am not an expert here.

Here are the files in this package

- TestLaunch.php
  This creates a very simple launch request and sends to DoLaunchRequest and displays the result with a great deal of debugging.
- TestOutcome.php
  This creates a very simple outcome request and sends it to DoOutcomeRequest and displays the result with a great deal of debugging.
- Sakai-Test-IMSTI.xml
  A tool descriptor that points back to this service. If you want to run this on your own computer, you will need to midif the ServiceLocation tag in this file to point to something like "http://localhost/~csev/imsti-test/DoLaunchRequest.php". Make sure to save this as a file or view source - because most browsers do not react well to raw XML.
- DoLaunchRequest.php
  This is the SOAP server that handles Launch Requests. It logs output to log.txt. If you go to this URL directly - you are shown the WSDL. Each Launch Request creates a session and then produces a URL that that points to the LMSTool.php including the session. Also all of the launch paramameters are dumped to disk into a file indexed by session ID..
- DoOutcomeRequest.php
  This is the SOAP server that handles Outcome Requests. It logs output to log.txt.
- LMSTool.php
  This is the tool that reads sessions. It is not useful to go to this directly.
- TestSession.php
  This makes sure that your writable areas in the directory are set up. If things work the session increments - or you might see error messages. This uses file based sessions and there are 10 of them and they get recycled. If directory browsing is turned our, take a look at the sessions.
- log.txt
  This is a log that DoLaunchRequest and DoOutcomeRequest write to while they are operating. It is nice to tail this log while debugging - you can press refresh and go to the bottom in a browser but that is kind of weak. You can reset the log.
- TIRLaunchSyncSingle.wsdl
  This is the WSDL for the Launch Request. You can also get this from DoLaunchRequest.
- TIROutcomeSyncSingle.wsdl
  This is the WSDL for the Outcome Request. You can also get this from DoOutComeRequest..

This package can be used online or it can be used on your own computer so you can do simple loopback tests without a network connection.

/Chuck Wed Feb 21 10:57:00 EST 2007