Ajax - application in the browser

There is a new trend on the Internet: The browser content finally becomes truly interactive - on a field level and with the feel of desktop applications. This approach is called Ajax and it delivers true application feel and behaviour to the Internet browser.
This page explains what Ajax is and how it works.

Elecat employs Ajax just like EleAIS and Eleserver. Read here about the great impact of Ajax on the visitors of your website.

Abstract for the non-technical decision maker

Ajax is a new design approach for web applications and neither a product nor a programming language. Ajax enables applications inside the Internet browser by bringing true desktop behaviour into the web browser including immediate responses to user actions or entries. Existing web server software cannot be converted to support Ajax. Ajax server software must be constructed from scratch. Most currently used (old) programming languages and tools are not well suitable for Ajax. This makes the developing Ajax server software substantially more expensive than conventional web software. Therefore, using standard products supporting Ajax like Elecat and EleFamily is certainly the better and more cost-effective solution.

The essential advantages of Ajax over conventional web server design:

  • Ajax makes applications in the browser truly interactive on a field level, very similar to desktop software.
  • The Ajax application responds immediately to any user action in the browser where needed.
  • An Ajax application behaves and feels like a desktop software in the browser and the "batch feeling" is gone.
  • Updating single items (fields) in the browser results in much better user guidance and higher user productivity.
  • With Ajax, the server can 'push' data into the browser, which is impossible for a conventional web server.
  • Overall, Ajax enables delivering much more sophisticated and user-friendly applications into the web browser.

Beware: Most of the following text is for the rather technically minded reader!

What is Ajax

Ajax is a new design approach for web applications. Ajax is not a new product or programming language. Ajax is a new form of constructing websites with truly interactive and immediate behaviour that substantially improves the user’s web application experience in delivering the functionality as well as the look-and-feel of desktop application software to Internet browsers.

"AJAX" stands for Asynchronous JavaScript and XML. Ajax uses these proven techniques in most Internet browsers, including the very popular and superior Mozilla Firefox and Microsoft's old dog IE.

Theoretically, Ajax can be implemented in any of the conventional programming languages although some are better suitable than others, of course. For example, implementing Ajax in the most wide-spread web server languages PHP or ASP (IBM) is much more cumbersome and expensive than in truly object-oriented environments. (Let's not discuss PHP5 here!)

In any case, Ajax needs a completely new design and "thinking" of the web server software. Some easy conversion of existing applications is generally impossible. This is also why Ajax doesn't come for free - except in new web applications like Elecat, EleAIS or the other web server enabled software products of EleFamily.

How does it work now - without AJAX?

A classic web application model (without Ajax) always follows these steps:
1. Some user operations in the browser send some data input to the web server by transferring the entire form or frame.
2. The server does some batch processing typically of several fields and input values sent inside the transmitted form.
3. And the server then returns the resulting HTML page to the browser client (or frame at minimum).

Today, browsers and web servers use old-fashioned batch communication
In this classical approach used by over 99% of today's websites, the interaction between browser and server is always based on transferring entire web pages or whole frames at minimum. This is stone-age technology from the 70ies that was outdated by the mid 80ies. But due to today's web servers this old-fashioned technique is still the standard practice on today's Internet.

Classic web applications therefore have at least these great disadvantages:
  • They are always refreshing the whole browser page or at least entire frames in response to some user actions.
  • There is no immediate and field-related processing, checking or response from the server, because always the entire form or frame is transferred to the server, sent back and refreshed in the browser.
  • Much of the traffic is redundant, because this approach always need to transfer whole forms or frames.
  • The communication between web browser and web server is a batch transfer of several or many values similar to the old mainframe approach that was the rule in the 70ies and early 80ies when dumb terminals were is use and all actions and even the simplest checking of user entries were performed by the server in a batch procedure.

What does AJAX improve and how?

Ajax delivers the much better approach
With Ajax, single web form elements, buttons or fields are processed and updated individually and immediately, so that there is no full-page or frame transfer anymore. Data transfer to and from the server is on field level and therefore in much smaller chunks of data and with an immediate response for the user.

The many benefits of Ajax
The Ajax approach provides many benefits apart from a much better user experience:
  • The server-side application can now be designed to compute answers as singleton data and not as full pages to be redisplayed. This allows for a much more granulated and and much better and cleaner software design.
  • Ajax makes applications in the browser truly interactive on a field level very similar to desktop software.
  • The application in the browser responds immediately to any user action where needed.
  • An application in the browser behaves and feels like a desktop software and the "batch feeling" is gone.
  • Updating individual items (fields) in the browser results in much better user guidance and higher user productivity.
  • With Ajax, the server can 'push' data into the browser, which is impossible for a conventional web server.
  • Ajax decreases the traffic between server and browser.
  • Ajax divides this traffic into smaller chunks of data.
  • Overall, Ajax enables delivering much more sophisticated and user-friendly applications into the Internet browser.

More sophisticated server programming required
The bad news is: One cannot just convert an existing web server application to deliver Ajax, because Ajax requires a fundamentally different concept and design approach (very similar to desktop software). Therefore, one must redesign and rewrite any conventional server application from scratch to deliver Ajax functionality and in most cases one will better use some different and more sophisticated programming language and tools than those used for the old batch-type websites.
(Of course, some vendors of Ajax tools claim just the opposite but this is the usual marketing blah-blah and simply not true!)

Ajax server software is much more expensive to develop
Because of these reasons, web server development in Ajax is more expensive than conventional web server software and this is another reason why it makes more sense to use standard software products like Elecat, EleAIS or the other web server enabled products of EleFamily. Another reason is, by the way, that many of the younger and/or low-qualified developers of today's websites will have a hard time or even fail, because Ajay is very demanding for the novice or layman programmer. Therefore, you better have some real pros to write Ajax web server software who know much more than some HTML and PHP.

GMail (Google mail) is in Ajax
Ajax is not exotic, it's use is only still rather rare today. Probably the most prominent example for the use of Ajax is Google mail.

Ajax in Elecat and EleFamily

In our case: full re-use of our EleFamily desktop software library
Our design approach and our tools for implementing Ajax inside Eleserver, our web server engine, are based on the ingenious advantage of being able to fully re-use our very comprehensive object-oriented EleFamily class (code) library and most of the logic from which the EleFamily desktop software is constructed. This is enabled by our development tools and our general design approach. The architect of EleFamily has over 30 years of experiance and has used object-oriented design since 1987! Therefore, almost all of our web server engine Eleserver is constructed from existing EleFamily components and it is, of course, all in purest object-oriented design.

All it needs for Eleserver to turn our desktop application software to delivering Ajax functionality to the Internet browser are some relatively small changes to the user interface processing. About 90-95% of the existing logic is re-used.

Perfectly suitable for hyprid applications
This is also why Eleserver and EleFamily are perfectly suitable for hybrid applications:
- For the "power user" on the desktop and in the office inside a LAN (local area network)
- In the Internet browser for the occasional, or remote, or traveling user.

Some more details - only for the more technically minded reader

EleFamily and also Eleserver were developed and written in the mother of all object-oriented languages and that is Smalltalk, the most mature, most sophisticated, most complex and also most productive software development environment today. A special class library also written in Smalltalk delivers the user interface functionality needed to construct and support Ajax.

We had intentionally constructed the user interface of EleFamily (desktop) entirely in data from the very beginning. It was therefore quite easy and very quick to re-use these data definitions of the UI for generating the UI in HTML in Ajax style.
Only the way how the actual user interface is constructed from this data differs between Eleserver (browser and Ajax) and EleFamily (desktop) and so does, of course, the transportation media for the UI consisting of HTML and JavaScript.

Full re-use of all of the application and business logic - only one source for desktop and web server
All of the application logic, the business rules, the data model definitions and even the UI definitions (in data) are fully re-used by both "appearances" of our software and are therefore identical on the desktop and inside the Internet browser. Additionally, the multi-level class (code) inheritance mechanisms of EleFamily are also re-used inside Eleserver.

Inside our software we just turn one switch and the desktop software acts as a web server or vice-versa, because they are really the one and the same class library with just a few subclasses that handle the different behaviour as a web server.

Some special Ajax links

If you want to learn more about Ajax in general, we provide you below with links to some websites discussing Ajax. However, linking these websites does not mean that we stand behind all of what is published there. We just want to assist you a little bit in getting deeper into the subject by reading other people's opinions and experiances.

Wikipedia Often not the best source (often manipulated) but compact and correct in this case
Ajaxian A very technical website totally devoted to Ajax in the style of blogs
An article about Ajax A descriptive and not uncritical article about Ajax in general.



The whole family

For further details please refer to the other web sites of this unique software family:
Elebase Product Content Management administrates all product data and catalog content for multiple re-use and data exchange
EleAIS Article Information System web server presents Elebase product data and Elecat catalogs on the Internet
Elepub Database Publishing software generates publications and product catalogs for paper, e-paper, HTML, Flash
EleFamily gives you an overview on the other products and links to the other product websites