www.mathertel.deThe AJAX Engine
View Source

The AJAX Engine

A AJAX Framework using the standard webservice protocols SOAP and WSDL.


AJAX is a technology that enables web applications or rich Internet applications to call the webserver without leaving the actual page. It's possible to do this in the background (asynchronously) without notice of the user. This avoids loading the same form or page including the html markup multiple times, reduces the network traffic and increases the user acceptance.

As a result web applications that use the Ajax technology tend to be more responsive and have more interaction with the user.


The AJAX Engine

The AJAX Engine that you can find on this site is built upon the webservice standard protocols SOAP and WSDL for transferring the data between the browser client and the web server instead of using a new or proprietary protocol. Therefore this engine can be used on web server platforms that support the SOAP base web services like ASP.NET, Java (Axis, Axis2, Bea WebLogic, ...) and PHP

As a complement to this implementation is a free book available that contains more detailed information about the ideas and pitfalls behind building AJAX applications and the concrete implementation of this Ajax engine.

The samples are all available online. Many of them give a brief self explenation and support links to the implemented source code.

The source code is available under a BSD license.

The AJAXEngine is a complete framework build upon the following technical components:

Core features

Cross Browser compatible JavaScript framework.

JavaScript SOAP Client

The communication layer is based upon a JavaScript implementation of a SOAP client that is calling standard SOAP based web services on the server. Therefore this component was ported to many server side frameworks that provide web services like Java, ASP.NET and PHP.

If you are interested in using the JavaScript client for SOAP based WebServices only have a look at JavaScript SOAP client.


Implementing AJAX applications is made easy by using this state engine that controls the asynchronous communication and client side activities. You can define the control flow (instead of programming on the lowest level) and use some more advanced built-in features like queuing and caching.

OpenAjax hub

Building event driven web applications is easy by using this OpenAjax compatible implementation of an event hub.

This subsystem allows a very efficient implementation of event driven web applications.

If you are interested in using the OpenAjax hub only have a look at OpenAjax hub. There you can find a alternate implementation of the OpenAjax hub specification.

JavaScript Behaviors and web controls

The Behavior mechanism enables extending HTML elements with specific functionality. You can build rich featured and reusable client side components.


All the technologies above can be inspected and analyzed online by looking into the samples implementations and viewing the source code.

Many aspects on this technology and many details about the AJAX Engine can be found in the eBook that is available at http://www.mathertel.de/AJAXEngine/documentation/AJAXeBook.aspx.

More features of this platform:

  • Using standard WebServices protocols for asynchronous client-server communications: (SOAP, WSDL)
  • Multiple DataType and XML support.
  • Automatic generation of JavaScript proxies for WebServices.
  • Fast Response.
  • Synchronous and asynchronous method invocations.
  • Client and server side Response caching.
  • Client side AJAX Engine that makes asynchronous client side processing easy.
  • AJAX Actions, queuing actions, scheduling actions
  • Integration into the Microsoft ASP.NET framework.
  • ASP.NET Web Forms and WebServices compatible
  • Integration into the java axis framework.
  • Many AJAX enabled web controls are available
  • Supports the Internet Explorer and the Firefox/Mozilla browsers.

This is the website hosting the source files and examples for the AJAX engine and my blog about aspects of AJAX.


The Book about the AJAX Engine

Many aspects on this technology and many details about the AJAX Engine can be found in the free e-book that is available at http://www.mathertel.de/AJAXEngine/documentation/AJAXeBook.aspx.

I will update it from time to time when new text on my Blog or samples on my website are written. Come back and check for new versions.

Architecture of the AJAX framework

Architecture of the AJAX framework using a Model View Controller pattern

Overview: overview.htm

Calling WebServices using a client side proxies written in JavaScript: javascriptproxy.htm

Compare the Aspects of AJAX Engine with other AJAX frameworks:AJAXComparison.aspx new

The AJAX Engine in short:The AJAXEngine web site

More documentation and latest additions for this side are available in my Blog.

See my blog at http://ajaxaspects.blogspot.com/.


Asynchronous Processing: First series of the samples showing how to handle asynchronous processing on the client and the server.

AJAX core and web service samples: These samples show how to use JavaScript, webservices, AJAX actions and all the features of the AJAX engine.

JavaScript Behavior Tutorial new: If you worry about too much JavaScript fragments in too many places you need a concept of reusing client side functionality on a component level. See how to implement JavaScript behaviors from the scratch.

AJAX web controls: These samples are using web controls and JavaScript behaviors to build up AJAX applications and to reduce the amount of code that has to be written in the pages.

LookUp: A autocomplete web control that suggest input values

TreeView: trees, tree view, hierachical data loading on demand

Field validation: validate field values on the server while filling out the form.

Huge Table: scroll or page through huge tables.

Bible Reader: A more complex AJAX application made of AJAX enabled web controls like cascading select boxes and text retrieval.

Bible Tree View: A AJAX based Tree View using an English Bible.

Page Connections: see how to link AJAX web controls together to reflect changed values.

AJAX enabled PopUp: see how additional information can be retrieved from the server and displayed in a html popup.

View the source code to see that only a few lines are needed to use AJAX enabled controls.

Visual Effects: Here you find a collection of visual effects that can be used as stand-alone effects and together with AJAX functionality.

AJAX Formsnew: Here you find the components and controls to build data centric web applications similar to classical form based web applications.


A complete repository of the AJAXEngine is hosted on sourceforge.net.

You can find a subversion repository with the current version of the AJAXEngine, including the samples on sourceforge at http://sourceforge.net/projects/ajaxengine/.

You should use this repository to check for bug fixes and new features. Announcements are available through the blog Aspects of AJAX.

Feel free to use the great advantages of this community site like discussions and bug tracking.

The subversion url is: https://ajaxengine.svn.sourceforge.net/svnroot/ajaxengine.


ASP.NET Version 24.02.2007

Ajax.zip (1.367 kByte)
This Zip-File contains the latest stable version of the ASP.NET 2.0 web project that builds this side. The complete AJAX Engine and all samples are included. Use this project when you want to start building your AJAX web application.

AJAXEngine.zip (159 kByte)
This Zip-File contains the core files of the AJAX engine and the AJAX controls. You can use this if you want to update your project with the updated core files.

Current version under development

Ajax_new.zip (~ 1.500 kByte) new
This Zip-File contains the current version of the ASP.NET 2.0 web project that builds this side.
The complete AJAX Engine and all samples and also unfinished samples and componente are included.
Use this download If you want to experiment with the Engine or if you want to have a look for the newest additions and features.

Java Version 03.02.2006

AJAXEngine_Java.zip (1,74 MByte)
This Zip-File contains a complete Java web project that uses a Java Port of this Engine. Some AJAX samples are included.


This work is licensed under a BSD style license.

The complete license agreement text is available at http://www.mathertel.de/License.aspx

(The license changed from a Creative Commons Attribution 2.0 Germany License to a BSD style license in January 2007.)

Impressum / Contact

If you like to add comments to my work I prefer that you post them on my blog and share your thoughts with everyone. I'll get a notice anyway :-)

For further contact:

Adress of the author

My Homepage: http://www.mathertel.de

My Blog: http://ajaxaspects.blogspot.com/