Framework for asynchronous process development

Hi
Our company Velare Technologies just released the beta version of our ATC Threading Java framework (http://www.velare.com/product/atct.htm)
It’s a very interesting technology that can be used for development of various types of asynchronous processes, including game scripting.

ATCT is a pure Java framework based on Execution Context Reification mechanism, allowing operations with “pickled threads” using a simple API. Developers can use ATCT as flow language for programming of long running interruptible processes. Standard tools and OOP techniques can be used for main application development, as well as for script development. The framework makes possible to use various types of script level thread management such us Green Threads and Fibers.

The following is a simple code example for asynchronous method call:

public class HelloWorld implements ATCRunnable {

public String getStringToPrint() throws ATCSignal // this is asynchronous method
{
return null;
}

public void run() throws AISignal {
System.out.println(getStringToPrint());
}

public static void main(String[] args) throws Throwable {
HelloWorld t = new HelloWorld();
ATCThread atct = new ATCThread(t);

//mc represents a call to getStringToPrint
MethodCall mc = atct.start();

//value "Hello World!!!" will be used to continue the execution and will appear in the print out.
atct.resume("Hello World!!!");

}

}

The framework is available free for download.

Thanks in advance for any feedback.

Serguei Mourachov
smourachov at velare.com

www.velare.com

?

What is that good for? Can you you give me an example?

ATCT allows you to use application level green threads. Each object that requires scripting can have its own sequential long-running flow implementing some behavior -a green (lightweight) thread.
You can map one Java (and native thread) to hundreds of such lightweight threads and schedule them as you want. It’s possible to move the lightweight threads between Java threads. Moreover ATCT threads are serializable, it means that you can stop them and save to file for later use or send them to another machine and continue execution there.
Usually game developers use custom build scripting languages to achieve such functionality but using ATCT you can do everything in Java using well known OOP techniques and design patterns.

Ahhh thx, now I understand (I hope). Yes, that sounds pretty cool. ;D

Today I use a command queue where commands are allowed to stay for an arbitrary time. But it is hard to maintain a state between multiple commands. You stuff you really be helpful there. Will look at it…