README.txt 4.68 KB
Newer Older
Bas Lijnse's avatar
Bas Lijnse committed
1
This repository holds the iTasks Software Development Kit (SDK).
Rinus Plasmeijer's avatar
Rinus Plasmeijer committed
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

=== What is it ? ==

The iTask Software Development Kit enables you to write multi-user web applications.
This can vary from a simple web application for filling in a web-form, a dedicated workflow system, an email application, or any application to support
workers in an organizarion to work together on the internet accomplishing a common goal.
So, it is a kit for developing multi-user software systems.

Applications are defined on a high level of abstraction, called "Task Oriented Programming" (TOP).
In this new style of programming, one defines the tasks humans and machines have to do.
One can abstract from low level technical stuf, like the communication between browsers and the server, the generation and handling of user interfaces,
the storage of information on disk or in databases.

TOP can be seen as an Embedded Domain Specific language, realized with a Combinator Library programmed in the host language Clean,  

Bas Lijnse's avatar
Bas Lijnse committed
17 18
=== Setup ===

Rinus Plasmeijer's avatar
Rinus Plasmeijer committed
19 20 21 22 23
= First install the Clean 2.4 32-bit distribution on your machine (download it from the Clean site: http://wiki.clean.cs.ru.nl/Download_Clean). 
There are version for the PC, Mac, and Linux.


= Preparation of the Clean IDE for iTasks =
24
- Make sure that this SDK is placed in the folder of the Clean 2.4 32-bit distribution (the one that contains "CleanIDE.exe")
Bas Lijnse's avatar
Bas Lijnse committed
25 26 27
  and is called "iTasks-SDK".
- Start the CleanIDE
- Import the "iTasks" environment by choosing "Environment" -> "Import..." from the menu
Rinus Plasmeijer's avatar
Rinus Plasmeijer committed
28
  and selecting the "iTasks-SDK/Server/iTasks.env" environment file. 
29 30
- Set your default heap size for projects to 8M by choosing "Project" -> "Project defaults..." from the menu

31 32
= Additional steps if you need client side execution =
- Please note that it works only with the Clean 2.4 32-bit distribution
Rinus Plasmeijer's avatar
Rinus Plasmeijer committed
33 34
- You need to use the "iTasks-SDK/Compiler/CleanIDE.exe", which must be in the same folder as the regular CleanIDE.exe. 
  If you want to use both, rename "iTasks-SDK/Compiler/CleanIDE.exe" and move it in the same folder as CleanIDE.exe.
35
- Import the "iTasks + SAPL" environment by choosing "Environment" -> "Import..." from the menu
36 37
  and selecting the "iTasks-SDK/Server/iTasks + Sapl.env" file.
- Unpack "iTasks-SDK/Compiler/StdEnv-Sapl.zip" into "Libraries/StdEnv/". This should add the folder "Sapl" in "Libraries/StdEnv".
38 39 40 41
- When you want to compile the current project to SAPL, choose "iTasks+SAPL" environment from the menu,
  and press CTRL-SHIFT-U to force the recompilation of the whole project.
  The compilation process creates a directory called "sapl" which contains all the necessary SAPL files;
  this directory will be used by the client side execution infrastucture of the iTask toolkit.
Rinus Plasmeijer's avatar
Rinus Plasmeijer committed
42
 
Bas Lijnse's avatar
Bas Lijnse committed
43 44 45
= Building examples =
The most up-to-date example suite to run at the moment is the examples collection for the CEFP Summerschool.

46
- Open the "iTasks-SDK/Examples/BasicAPIExamples.prj" Clean project. ("File" -> "Open...")
Bas Lijnse's avatar
Bas Lijnse committed
47
- You build the project by choosing ("Project" -> "Update and Run") from the menu.
48
- A BasicAPIExamples.exe server is started automatically which you can access at "http://localhost/"
Bas Lijnse's avatar
Bas Lijnse committed
49 50
- Further instructions for setting up are given by the server 

Rinus Plasmeijer's avatar
Rinus Plasmeijer committed
51 52 53
= Building the support tools ==
- Build the RunAsync tool by opening the Clean project "iTasks-SDK/Tools/RunAsync/RunAsync.prj" and choosing ("Project" -> "Update") from the menu.

Bas Lijnse's avatar
Bas Lijnse committed
54
=== Content of the repository ===
Bas Lijnse's avatar
Bas Lijnse committed
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73

This SDK consists of multiple libraries, tools and documents that are needed to
create iTasks applications.
They are divided over multiple folders as follows:

- Server   : Here you find all the Clean libraries that are needed to build iTasks
             server applications. As a workflow programmer you will need these libraries
             in combination with the Clean IDE and build system to program workflow management
             applications.
             The "Server" folder is divided in an "API" and "Framework" folder. In API you find
             the modules that make up the iTasks workflow definition language. You can use these
             to specify your workflows with combinators. The "Framework" folder contains all the
             magic that is needed to turn workflow specifications into executable systems. As a
             workflow programmer you will not need to get to know these libraries.

- Client   : To let end-users interact with the workflow management systems you create with
             the server libraries, they need a client application. In this folder you find the
             default AJAX web client which your server application will serve at run time.

74
- Examples : Example task definitions.
75

Bas Lijnse's avatar
Bas Lijnse committed
76
- Tools    : Various build and code generation tools.