The OpenAjax hub
Archived and unsupported
This AJAX Framework is outdated. It was built according to the definition of the OpenAjax Alliance in 2006 that I participated as an individual member.
Today client side reactive programming should be considered as state-of-the-art. However in environments where size matters a client side data-hub approach is still valid.
The OpenAjax Hub is a set of standard JavaScript functionality defined by the OpenAjax Alliance that addresses key interoperability issues that arise when multiple Ajax libraries are used within the same web page.
A very important part of this specification is the Publish/Subscribe
Event Management that founds a framework
for building event driven web applications. These services by providing a common and interoperable service
for publishing events on a broadcast basis and for script logic to listen (i.e., subscribe) to events fired
by other script logic.
Relation to Reactive programming
The OpenAjax hub allows streaming changed values in a data model to subscribers that register their interest in a specific area of the data. It was one early and important work and implementation of a Reactive programming model that today is part of most client-side framework.
An implementation of the OpenAjax hub specification
The OpenAjax Alliance has defined a specification called the OpeAjax hub that is a mechnism that enables loose connections between multiple components by using a publish subscribe pattern. A second source implementation is available within the AJAXEngine framework (inside jcl.js) and as well it is available in a standaline version in the file AoAoA.js.
The OpenAjax Alliance provides a reference implementation is available in an early version and other implementations of the specification are welcome. After reading the available specs and noticing that it is "just" better then my prior codings I decided to implement the specific details on my own and make them available in a standalone JavaScript file. Some requirements are implemented different than in the reference implementation and maybe you find the time to have a look at the difference if you like.
The size of the implementation is about 1300 bytes when compressed. That's about half the size of the reference implementation.
Download
The files are available for historic reasons in OpenAjax.zip.