CSEP545 - Course Project for C#

Unpackage and Install

Required Software


Download the project template. http://www.cs.washington.edu/csep545/12wi/csep545-cs.zip

Modifying Code

The project uses the .NET remoting mechanism. We provide most of the API as well as implementation so that you do not need to deal with it directly.

Please refer to the java version documentation for the interface and provided API. [local] [online]. Please note that the C# and java versions of the project provides the same interface. The only differences are in terms of packaging.

All required interfaces are defined in the solution TP. We expect you to modify the interface tp.TM to implement two-phase commit. Other than that, please try to keep the interfaces intact.

We expect you to implement all the APIs in tp.WC class. All transactions are serializable by default. Weaker isolation is extra-credit.

For your convenience, we provide a single-threaded version of implementation and bootstrapping of the managers. If you find any problem, please contact a TA.

Running the Project

In order to run the project, first open the CSEP545 solution in Visual Studio. You need to build the TP, MyWC, MyTM, and MyRM sub-projects and then add MyTM.exe, MyRM.exe, MyWC.exe, and TP.dll as references to the CSEP545 project. Now build and run the CSEP545 project. We provide you with a TestBase class that simply shows you how the project would run. Go through step-by-step debugging mode to see how different managers are called. The test file will not successfully finish till the implementation of your project is complete. Basically we first run the Transaction manager, then Resource managers, and finally a Workflow Controller. MyWC and MyRM requires the Transaction manager to be present.

Run Transaction Manager

> MyTM.exe -p port : The port the transaction manager listens on. Default port is 8089.

Run Resource Manager

> MyRM.exe -p port -n name -tm TM address : The port and the name of the resource manager plus the transaction manager address. The default port that the resource manager listens on is 8081, the default name is "MyRM", and the default TM address is http://localhost:8089/TM.soap

Run Workflow Controller

> MyWC.exe -p port -tmp TM server port -tms TM server address : the deafult port that the Workflow Controller listens on is 8086, the default TM server address is http://localhost, and the default TM port is 8089.