This is a web site that contains information about the AsyncObjects framework. The AsyncObjects framework simplifies writing asynchronous event-driven applications in Java. It mainly builds upon ideas and syntax of E programming language. However, it also draws ideas from other programming languages like Occam and frameworks like SEDA as well. In addition to core library that supports common asynchronous communication patterns. The framework provides a wrapper for NIO-based sockets that simplify creation of network applications that support a high number of concurrent connections.
The framework automates the following common tasks for event loop programming:
The desitnation of events is a java object. This object has a proxy that dispatches events to its event loop. The proxy can be passed around.
It is as simple as invoking a method on the proxy of the objects.
The components are Java objects that extend specific base class and implement their asynchronous interfaces. Normal OO application development techniques can be used.
The components do not need to directly create threads and to be aware about them. This remove major source of integration problems for asynchronous components. The event loop itself is managed by framework. And this event loop might suppor multiple components at the same time. No special efforts are required from the application developer to achieve this.
The request-response asynchroous operations return promise that resolves when operation is finished. The application might continue exection when promise is resolved. The When utility class simplifies listening on promise.
The framework provies utility classes that simplify composing asynchronous operations: Serialized, Seq, All, Any, Using.
The current version of the framework is 0.3.2 (alpha) released on 2007-06-04. The project is released under Apache License 2.0. The framework requires Java 1.5 since it is heavily depends on Generics. Please see the following links for more information about the framework.
Future versions of the framework will extend network library with support for common internet protocols like HTTP and FTP. The support for using the framework in Java EE environment is also planned.
This site is hosted on
There is also Scala implementation of the project: AsyncScala