Open Source AJAX Frameworks with Server-Side Java Support

Share the article!

It’s time for yet another open source list. AJAX is all the craze these days. Although AJAX is primarily a Javascript based platform, I figure that developers would be interested in continually leveraging their Java skills. Therefore, this list is really about open source java support on the serverside for AJAX development. It’s a mouthful but I hope you grok it. So here’s the list:

  • DWR – DWR (Direct Web Remoting) is a way of calling Java code on the server directly from Javascript in the browser. DWR consists of two main parts: JavaScript running in the user’s browser to communicate with the server and dynamically update the webpage, and a Java Servlet running on the server that processes requests and sends responses back to the browser. DWR takes a novel approach to AJAX by dynamically generating JavaScript code based Java classes. Thus the web developer can use Java code from JavaScript as if it were local to the web-browser; whereas in reality the Java code runs in the web-server and has full access to web-server resources.
  • JSON-RPC-Java – JSON-RPC-Java is a dynamic JSON-RPC implementation in Java. It allows you to transparently call server-side Java code from JavaScript with an included lightweight JSON-RPC JavaScript client. It is designed to run in a Servlet container such as Tomcat and can be used with JBoss and other J2EE Application servers to allow calling of plain Java or EJB methods from within a JavaScript DHTML web application.
  • AjaxTags – The AJAX Tag Library is a set of JSP tags that simplify the use of Asynchronous JavaScript and XML (AJAX) technology in JavaServer Pages. This tag library fills that need by not forcing J2EE developers to write the necessary JavaScript to implement an AJAX-capable web form. The tag library provides support for live form updates for the following use cases: autocomplete based on character input to an input field, select box population based on selections made from another field, callout or balloon popups for highlighting content, refreshing form fields, and toggling images and form field states on/off.
  • Echo 2 – Echo2 is the next-generation of the Echo Web Framework, a platform for developing web-based applications that approach the capabilities of rich clients. The 2.0 version holds true to the core concepts of Echo while providing dramatic performance, capability, and user-experience enhancements made possible by its new Ajax-based rendering engine.
  • AjaxAnywhere – AjaxAnywhere is designed to turn any set of existing JSP components into AJAX-aware components without complex JavaScript coding.
  • ActiveMQ Ajax Support – Ajax support in ActiveMQ builds on top of the REST connector for ActiveMQ which allows any web capable device to send or receive messages over JMS. All the Ajax examples are currently using OpenRico.
  • Tacos – The Tacos library project provides components and ajax behaviour for the Tapestry java web application framework. Most of the library relies almost exclusively on Dojo.
  • WebWork 2.2
    Awesome AJAX support built on top of DWR and Dojo. Form validation, tabbed panels, remotable forms, and remote divs. More AJAX components will be coming in subsequent releases.
  • Simple Web Framework – The Simple Web Framework (SWF) is an event based framework targeting Struts developers who want to build rich Web applications but do not want to migrate to JSF. The SWF is built upon the same Jakarta commons basis as Struts, but uses a different request processor (front controller.) The SWF event model supports XmlHttpRequest (as well as form/submit) based event posting, similar to VB.NET or JSF, with In place Page Updating (IPU) rather than page reloading.
  • Wicket 1.1 rc2 – Dojo, Scriptaculous and Wicket integration. The release consists of an Ajax handler, allowing you to create your own custom Wicket Ajax components based on the Dojo toolkit.
  • Taconite – The heart of Taconite is a parser that converts normal (X)HTML code into a series of JavaScript commands that dynamically create the content on the browser. This parser allows you, the developer, to write content in way that is natural — as (X)HTML. You no longer have to crowd your pages with a slew of document.createElement and document.appendChild commands to dynamically create new content. The Taconite custom parser is implemented as a set of JSP custom tags, which can be used in any Java servlet container, or as a client-side JavaScript library, meaning it can be used in conjunction with virtually any server-side technology.
  • SWATO – Server side Java library can be deployed in Servlet 2.3+ compatible containers. Client side JavaScript library is base on Prototype. JSON based marshalling. Spring integration. Includes several reusable components like auto-suggest Textbox, Javascript templates and logging.
  • Zimbra – Zimbra is an open source server and client technology for AJAX based messaging and collaboration. The collaboration server is built using Java based technologies. The server features file based message storate, a SQL metadata storage, Lucene based search, clustering, replication, archiving and LDAP support.
  • Orbeon Forms – An XForms engine much improved over OPS 2.8′s, significant improvements in the Page Flow Controller, and more. The XForms engine is based on Ajax technologies. This makes the XForms engine much more responsive to user interaction than with OPS 2.8.
  • JsOrb – JsOrb includes code generators that build on demand JavaScript classes for your POJOs and as proxies to your business logic interfaces. The JavaScript classes have the same methods as your POJOs and business logic interfaces, so your JavaScript code ends up looking surprisingly similar to Java.
  • ZK – ZK is an event-driven, XUL-based, AJAX-embedded, all Java framework to enable rich user interfaces for Web applications. With ZK, you represent and manipulate RIA in XUL/HTML components all at the server similar to how you developed desktop apps. ZK includes an AJAX-based event-driven engine to automate interactivity, and a rich set of XUL-based components.
  • Rialto – Rialto is a cross browser javascript widgets library. It supports pure javascript development and JSP/taglib development. A JSF integration is planned.
  • JSP Controls Tag Library – JSP Controls Tag Library (the “Library”) provides the lifecycle for portlet-like JSP components. The Library does not require a portal engine or other central controller. The components built with the Library can be used in any JSP-based application. The Library supports two request processing modes: Non-Ajax and Ajax. Pages composed with JSP Controls Tag Library look and behave the same way whether they run in Ajax mode or not.
  • OpenLaszlo – OpenLaszlo programs are written in XML and JavaScript and transparently compiled to Flash and DHTML. The OpenLaszlo APIs provide animation, layout, data binding, server communication, and declarative UI.
  • XAP – The basic intent of XAP is to leverage existing Ajax projects such as Apache Kabuki and Dojo, as well as other community efforts such as Eclipse openAjax. It aims to be pluggable with various Ajax toolkits, reduce the need of scripting and solve the development challenge as well as application maintenance challenges associated with Ajax programming.
  • AJAX4JSF – Ajax4jsf fully leverages the benefits of the JavaServer Faces framework including lifecycle, validation, and conversion facilities, along with management of static and dynamic resources. Ajax4jsf enables page-wide AJAX support instead of the traditional component-wide support. This means you can define the event in the page that invokes an AJAX request and then the areas of the page that should be synchronized with the JSF Component Tree after the AJAX request changes the data on the server.
  • ThinkCAP JX – ThinkCAP’s core is an advanced MVC framework that manages the runtime layout and presentation of GUI components, state management, data binding, validation, and data persistence. The framework is driven by Java classes and XML metadata generated by the Workbench. The current 6.0 version is very Struts-like.
  • jMaki – jMaki is all about enabling Java developers to use JavaScript in their Java based applications as either a JSP tag library or a JSF component.jMaki uses the best parts of Java and the best parts of JavaScript to deliver a rich AJAX style widgets. jMaki currently provides bootstrap widgets for many components from Dojo, Scriptaculus, and Yahoo UI Widgets. Also included in this project are a set of AJAX widgets with a focus on Web 2.0. Included are a RSS widget, a del.icio.us Bookmark widget, a Chat widget, and many more to come.
  • GWT – Google Web Toolkit (GWT) is a Java software development framework that makes writing AJAX applications like Google Maps and Gmail easy for developers who aren’t experience with javascript. GWT lets you avoid tedious and error-prone javascript programming while offering your users the same dynamic, standards-compliant experience. You write your front end in the Java programming language, and the GWT compiler converts your Java classes to browser-compliant JavaScript and HTML.
  • Helmi – Helmi’s Open Source RIA Platform permits client- and server-side engineers to work independently while communicating effectively through an object-oriented environment. This solution is composed of a 100% browser-based Client Framework, a Virtual Browser that enables cross-browser application operations, an Integrated Development Environment (IDE), and a J2EE-based AJAX Server Connect that simplifies transmitting data from server to client.
  • Open jACOB – Open-jACOB is a Java rapid application development tool (RAD) based on Eclipse that enables the development of Rich Internet Applications (RIA) that are based entirely on Java. The primary goal of the jACOB Framework is to handle web applications with CRUD (create, retrieve, update, delete) with little or no Java programming. Instead of telling the application how to retrieve and how to display the data. The developer creates the Web-UI with a point&click eclipse UI-Designer.
  • ThinWire – ThinWire is an open source development framework that allows you to easily build RIA applications. Notable features include a familiar event-driven GUI programming model, state maintenace via variables and not via session,
    exclusively server-side language and supports all major browsers.
  • ICEfaces
    ICEfaces is a RIA framework that delivers unique Ajax Push capabilities. Discover the power of Ajax Push and create collaborative and dynamic enterprise applications.
    ICEfaces leverages the entire standards-based Java EE ecosystem of tools and execution environments. Rich enterprise application features are developed in pure Java, and in a pure thin-client model. ICEfaces is based on JavaServer Faces (JSF).

If I may have missed something then please let me know.
In addition here’s an article “Dispelling the Javascript Degredation Myth” that may be ammunition in arguing for an AJAX approach.


Share the article!

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>